首页 > 解决方案 > 找出具有相同列熊猫的两个数据框的差异

问题描述

我有三个数据框,如下所示

df1:

Unit_ID        Price
1              10
2              20
3              10

一天后 df1 更新为 df2 ,如下所示。

df2:

Unit_ID        Price
1              10
2              20
3              10
4              15
5              20

从那天起,df2 更新为 df3 一天后,如下所示。我想找出当前数据框中的新单位,如下所示。

df3:

Unit_ID        Price
1              10
2              20
3              10
4              15
5              20
6              80

我想编写一个函数来返回带有熊猫数据框的新单元。我想找出当前数据框中的新单位,如下所示。

例如在第一次更新时它应该在数据框之下

东风:

Unit_ID        Price
4              15
5              20

在下一次更新中,它应该返回数据框下方

东风:

Unit_ID        Price
6              80

步骤 1. 确保在每个数据帧中 Unit_ID 是唯一的。2. 在当前表中找出新的Unit_ID。

标签: pandaspandas-groupby

解决方案


对于每一天都需要复制DataFrame到新的:

df1 = df.copy()

在添加新行之后,您可以使用Series.isin带有反转掩码的测试成员资格~

df_added = df[~df['Unit_ID'].isin(df1['Unit_ID'])]

验证解决方案:

print (df2)
   Unit_ID  Price
0        1     10
1        2     20
2        3     10
3        4     15
4        5     20

print (df3)
   Unit_ID  Price
0        1     10
1        2     20
2        3     10
3        4     15
4        5     20
5        6     80

df_added = df3[~df3['Unit_ID'].isin(df2['Unit_ID'])]
print (df_added)
   Unit_ID  Price
5        6     80

推荐阅读