pandas - 找出具有相同列熊猫的两个数据框的差异
问题描述
我有三个数据框,如下所示
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。
解决方案
对于每一天都需要复制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
推荐阅读
- python - 如何删除列表 python 中的空格
- javascript - 为什么在使用 React hooks 获取 api 时我会得到一个空数组?
- blazor-webassembly - 等待后的 Blazor Web 代码直到第二次才执行
- python - 如何在ansible中打印python请求响应
- python - 如何使用 numpy meshgrid 执行 ND 坐标扫描
- wpf - 是否可以在 Prism WPF 项目和 Prism Forms 之间使用通用视图模型(尤其是导航)?
- javascript - 如何调整 D3 折线图上的线性轴以适应更大的域
- spring-boot - 如何删除 hasAuthority 中的 SCOPE_ 前缀
- android - Binding 的值没有显示在 ios 中,但在 android 上正常工作
- javascript - “二维”是什么意思