Данные Pandas Dataframe такие же или новые?

1

В 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???

Теги:
pandas
dataframe

2 ответа

2
Лучший ответ

Я думаю, что нужна 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']
  • 0
    @ShrutiBhutaiya - я только спрашиваю, если какие-то проблемы, потому что удалить принимать;)
2

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

df2.id.isin(df1.id)

0     True
1     True
2     True
3    False
4    False
Name: id, dtype: bool

Ещё вопросы

Сообщество Overcoder
Наверх
Меню