我有2个数据帧,它们具有相同的4个字段,并且仅在第4个字段下它们可以具有也可以不具有不同的值。如何创建具有五个字段的新数据框,其中仅存储具有不同值的条目,并且第4列和第5列显示相应的对比值?
答案 0 :(得分:1)
我认为需要先通过join
创建一个DaatFrame
,然后通过boolean indexing
进行过滤:
df1 = pd.DataFrame({'a': [1, 2, 2], 'b': [10, 17, 2], 'c': [0, 2, 0], 'd': list('adb')})
print (df1)
a b c d
0 1 10 0 a
1 2 17 2 d
2 2 2 0 b
df2 = pd.DataFrame({'a': [1, 2, 2], 'b': [10, 17, 2], 'c': [0, 2, 0], 'd': list('edc')})
print (df2)
a b c d
0 1 10 0 e
1 2 17 2 d
2 2 2 0 c
df = df1.join(df2[['d']], rsuffix='_')
print (df)
a b c d d_
0 1 10 0 a e
1 2 17 2 d d
2 2 2 0 b c
df = df[df['d'] != df['d_']]
print (df)
a b c d d_
0 1 10 0 a e
2 2 2 0 b c