熊猫如何计算两个数据框之间的更新

时间:2018-06-22 11:46:05

标签: python python-3.x pandas

我正在尝试编写可以在两个数据框之间进行检查的代码,并让我知道两者之间的区别。不幸的是,我遇到了障碍,不知道如何编写解决方案,并希望有人可以帮助我。

数据框由两个CSV文件填充。每个csv的结构相同,只是数据不同。一共有5列,每个数据帧中的列名都相同。

第一个数据帧df1是最新数据,另一个数据帧df2是现有数据。我正在尝试:

  1. df1中添加了新行。
  2. df1中缺少df2的行。
  3. 两个数据帧中都存在行,但是值具有 改变了。

我一直采用的方法是使用以下代码创建第三个数据集df3并创建df1df2的合并:

 df3 = pd.merge(df1, df2, indicator=True,
                on=["A","B","C","D","E"], how="outer")

这给了我_merge列,我可以使用以下代码创建两个新的数据集

df4 = df3.loc[df3['_merge'] == 'left_only']
df5 = df3.loc[df3['_merge'] == 'right_only']

在这一点上,在df4中,我有一个行列表,这些行要么是真正的新行,要么是具有修改值的现有行。 我被困在如何找出哪个?

数据由5列组成,只有列D会改变。 我当时正在考虑遍历df4的每一行,并以某种方式检查df5的列A,B,C and E是否都匹配的行是否存在?此时,我可以将df4中的行标记为update,而不是new行。

如果有人让我知道正确的方法,我将非常感谢您的帮助。

谢谢。

enter image description here

0 个答案:

没有答案