Как я могу показать только строки, общие с другим фреймом данных в pandas? - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь показать только строки в pandas фрейме данных, у которых есть первый общий столбец с другой строкой в ​​другом фрейме данных. Вот мой код:

sen_race.iloc(sen_race['Precinct'] == mi4['Precinct'])

Вот фотографии с кадрами данных, если они полезны:

mi4 кадр данных: https://ibb.co/2qFMq4v

sen_race фрейм данных: https://ibb.co/y4qBHG1

Вот ошибка, которую я получаю:

    ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-48-7695709c5335> in <module>
----> 1 sen_race.iloc(sen_race['Precinct'] == mi4['Precinct'])

/opt/anaconda3/lib/python3.7/site-packages/pandas/core/ops/common.py in new_method(self, other)
     62         other = item_from_zerodim(other)
     63 
---> 64         return method(self, other)
     65 
     66     return new_method

/opt/anaconda3/lib/python3.7/site-packages/pandas/core/ops/__init__.py in wrapper(self, other)
    519 
    520         if isinstance(other, ABCSeries) and not self._indexed_same(other):
--> 521             raise ValueError("Can only compare identically-labeled Series objects")
    522 
    523         lvalues = extract_array(self, extract_numpy=True)

ValueError: Can only compare identically-labeled Series objects

Почему это не работает?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

это должно работать. из документации по слиянию

sen_race.merge(mi4['Precinct'], on='Precinct', how='inner') 

Однако существует серьезное предостережение о том, что участки являются уникальными. Если df 1 имеет более одного общего участка, он напечатает обе строки.

0 голосов
/ 25 апреля 2020

Если вы просто хотите отфильтровать результаты, вы можете использовать:

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