Использование isin для возврата значений из двух определенных столбцов из двух кадров данных Pandas - PullRequest
0 голосов
/ 07 октября 2019

У меня есть два кадра данных с идентификаторами для физических объектов. У меня тогда есть список объектов. Я хотел бы вернуть только те местоположения, которые использовались в обоих таймфреймах, из моего основного списка. Я пытаюсь заставить работать следующее, и кажется, что у меня что-то в синтаксисе неверно, или я неправильно использую isin.

print(filtered_locations[filtered_locations['id'].isin(filtered_departments.buildingid,filtered_stores.facilityid)])

Я пробовал несколько вариантов этого - хотя есть многопримеры в документах, которые конкретно показывают, как сканировать два списка с использованием словарей и т. д. У меня возникают проблемы с поиском самого быстрого / наиболее прямого способа возврата только значений, которые находятся в двух указанных столбцах в других фреймах данных.

1 Ответ

2 голосов
/ 07 октября 2019

См. Документацию здесь для pandas.Series.isin() метода.

Он принимает только один параметр, который является

значениями: набор или список

то, что вы дали, это кортеж из двух списков, поэтому вам нужно объединить два списка в один список, подобный или установленный, набор, вероятно, намного лучше, так как он не будет содержать дублированных значений.

Код

ids = set(filtered_departments.buildingid.tolist() +\
filtered_stores.facilityid.tolist())

my_locations = filtered_locations[filtered_locations['id'].isin(ids)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...