我正在尝试编写可以在两个数据框之间进行检查的代码,并让我知道两者之间的区别。不幸的是,我遇到了障碍,不知道如何编写解决方案,并希望有人可以帮助我。
数据框由两个CSV文件填充。每个csv的结构相同,只是数据不同。一共有5列,每个数据帧中的列名都相同。
第一个数据帧df1
是最新数据,另一个数据帧df2
是现有数据。我正在尝试:
df1
中添加了新行。df1
中缺少df2
的行。我一直采用的方法是使用以下代码创建第三个数据集df3
并创建df1
和df2
的合并:
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
行。
如果有人让我知道正确的方法,我将非常感谢您的帮助。
谢谢。