1

鉴于这两个熊猫数据框:

>>> 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到. val2_ df2_ df1_ c1更新df1后的样子如下:

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

我想过使用 set_index 和 update: 的组合 df1.set_index('c1').update(df2.set_index('c1')),但它没有用......

4

1 回答 1

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
于 2013-11-06T22:13:18.603 回答