Данные Pandas Dataframe такие же или новые? - PullRequest
0 голосов
/ 25 сентября 2018

В Python используются кадры данных Pandas:

dataframe_1:

     id
0  AB17
1  AB18
2  AB19
3  AB20
4  AB10

dataframe_2:

     id
0  AB20
1  AB10
2  AB17
3  AB21
4  AB09

Здесь dataframe_2 содержит AB20 , AB10 и AB17 совпадают с dataframe_1 в случайном порядке.

Как проверить, какие элементы в dataframe_2 являются новыми, а какие такими же, как dataframe_1???

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Используйте isin как:

df2.id.isin(df1.id)

0     True
1     True
2     True
3    False
4    False
Name: id, dtype: bool
0 голосов
/ 25 сентября 2018

Я думаю, что нужно isin для логической маски и фильтрации по loc с boolean indexing, если необходимо преобразовать вывод Series в list:

mask = dataframe_2['id'].isin(dataframe_1['id'])
print (mask)
0     True
1     True
2     True
3    False
4    False
Name: id, dtype: bool

same = dataframe_2.loc[mask, 'id'].tolist()
diff = dataframe_2.loc[~mask, 'id'].tolist()

#if want unique values
#same = dataframe_2.loc[mask, 'id'].unique().tolist()
#diff = dataframe_2.loc[~mask, 'id'].unique().tolist()

print (same)
['AB20', 'AB10', 'AB17']

print (diff)
['AB21', 'AB09']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...