将数据框的列附加到pandas中的不同数据框

时间:2013-11-06 22:07:06

标签: python pandas append dataframe

鉴于这两个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 ,但它不起作用......

1 个答案:

答案 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