鉴于这两个pandas数据框:
>>> df1 = pd.DataFrame({'c1':['a','b','c','d'], 'c':['x','y','y','x']})
c1 c2
0 a x
1 b y
2 c y
3 d x
>>> df2 = pd.DataFrame({'c1':['d','c','a','b'], 'val1':[12,31,14,34], 'val2':[0,0,1,1]})
c1 val1 val2
0 d 12 4
1 c 31 3
2 a 14 1
3 b 34 2
我想将val1
的{{1}}和val2
列附加到数据框df2
,同时考虑df1
中的元素。更新的c1
将如下所示:
df1
我想过使用set_index和update的组合:
>>> df1
c1 c2 val1 val2
0 a x 14 1
1 b y 34 2
2 c y 31 3
3 d x 12 4
,但它不起作用......
答案 0 :(得分:2)
您可以使用pd.merge
:
import pandas as pd
df1 = pd.DataFrame({'c1':['a','b','c','d'], 'c2':['x','y','y','x']})
df2 = pd.DataFrame({'c1':['d','c','a','b'], 'val1':[12,31,14,34], 'val2':[4,3,1,2]})
df1 = pd.merge(df1, df2, on=['c1'])
print(df1)
产量
c1 c2 val1 val2
0 a x 14 1
1 b y 34 2
2 c y 31 3
3 d x 12 4