为了账号安全,请及时绑定邮箱和手机立即绑定

pd.merge 并检查更改的数据

pd.merge 并检查更改的数据

梦里花落0921 2023-06-20 16:49:33
如果我有这些数据框df1 = pd.DataFrame({'index': [1,2,3,4],                    'col1': ['a','b','c','d'],                   'col2': ['h','e','l','p']})df2 = pd.DataFrame({'index': [1,2,3,4],                    'col1': ['a','e','f','d'],                   'col2': ['h','e','lp','p']})df1   index col1 col20      1    a    h1      2    b    e2      3    c    l3      4    d    pdf2   index col1 col20      1    a    h1      2    e    e2      3    f   lp3      4    d    p我想合并它们并查看行是否不同并得到这样的输出   index col1  col1_validation col2  col2_validation0      1    a             True    h             True1      2    b            False    e             True2      3    c            False    l            False3      4    d             True    p             True我怎样才能做到这一点?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

看起来col1和col2您的“合并”数据框只是取自df1. 在这种情况下,您可以简单地比较原始数据帧之间的 , 并将它们添加为列col1:col2


cols = ["col1", "col2"]

val_cols = ["col1_validation", "col2_validation"]


# (optional) new dataframe, so you don't mutate df1 

df = df1.copy()

new_cols = (df1[cols] == df2[cols])

df[val_cols] = new_cols    


查看完整回答
反对 回复 2023-06-20
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您可以使用类似于以下内容的方式合并和比较两个数据框:


df1 = pd.DataFrame({'index': [1,2,3,4],

                    'col1': ['a','b','c','d'],

                   'col2': ['h','e','l','p']})

df2 = pd.DataFrame({'index': [1,2,3,4],

                    'col1': ['a','e','f','d'],

                   'col2': ['h','e','lp','p']})



# give columns unique name when merging

df1.columns = df1.columns + '_df1'   

df2.columns = df2.columns + '_df2' 


# merge/combine data frames

combined = pd.concat([df1, df2], axis = 1)


# add calculated columns

combined['col1_validation'] = combined['col1_df1'] == combined['col1_df2']

combined['col12validation'] = combined['col2_df1'] == combined['col2_df2'] 


查看完整回答
反对 回复 2023-06-20
  • 2 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信