Поиск столбца для нескольких строк, но показать ошибки Python Pandas - PullRequest
0 голосов
/ 09 декабря 2018

Я ищу столбец в моем фрейме данных для списка значений, содержащихся в CSV, который я преобразовал в список.Поиск этих значений не является проблемой здесь.

import pandas as pd

df = pd.read_csv('output2.csv')
hos = pd.read_csv('houses.csv')
parcelid_lst = hos['Parcel ID'].tolist()
result = df.loc[df['PARID'].isin(parcelid_lst)]

result

Что я хотел бы сделать, так это после того, как список будет найден, а фрейм данных показан с «найденными» значениями. Я также хотел бы напечатать или отобразить список значений из списка.которые были "не найдены" или не существовали в столбце данных, который я искал.

Есть ли конкретный метод для вызова этого?

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

Ответы [ 3 ]

0 голосов
/ 09 декабря 2018

После пересмотра моего вопроса и размышления о нем немного по-другому, решение, которое я нашел, состоит в том, чтобы превратить все значения во фрейме данных в столбце «PARID» в список.Затем сравните «parcelid_lst» с ним.

Результатом стал список всех значений, которых не было в кадре данных, но которые существовали в 'parcelid_lst'

df = pd.read_csv('output2.csv')
allparids = df['PARID'].tolist()
hos = pd.read_csv('houses.csv')
parcelid_lst = hos['Parcel ID'].tolist()
list(set(parcelid_lst) - set(allparids))
0 голосов
/ 10 декабря 2018

Я также хотел бы напечатать или отобразить список значений из списка, которые были "не найдены" или не существовали в столбце фрейма данных, который я искал.

Выдля этого не нужно задавать свой фрейм данных.Вы можете отфильтровать серии для элементов, не найденных в указанном вами списке (или серии), а затем использовать pd.Series.unique:

not_found = df.loc[~df['PARID'].isin(hos['Parcel ID'].unique()), 'PARID'].unique()

Как указано выше, этоХорошая идея - сделать hos['Parcel ID'] массивом уникальных значений, если вы ожидаете, что в серии существуют дубликаты.

0 голосов
/ 09 декабря 2018

Добавление тильды делает обратное.Может быть, что бы получить все значения, которые не являются частью parcelid_lst

not_found = df.loc[~df['PARID'].isin(parcelid_lst)]

Надеюсь, что помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...