Python:使用另一个数据框替换一个数据框的数据

时间:2020-01-26 16:04:34

标签: python pandas

如何使用基于列A的数据框df2替换df1中的数据

df1 = pd.DataFrame({'A': [0, 1, 2, 0, 4],'B': [5, 6, 7, 5, 9],'C': ['a', 'b', 'c', 'a', 'e'],'E': ['a1', '1b', '1c', '1a', '1e']})
df2 = pd.DataFrame({'A': [0, 1],'B': ['new', 'new1'],'C': ['t', 't1']})

2 个答案:

答案 0 :(得分:2)

使用DataFrame.merge进行左连接,用DataFrame.fillna用原始DataFrame替换缺失值,用df1.columns替换最后一个过滤器列:

df = df1.merge(df2, on='A', how='left', suffixes=('_','')).fillna(df1)[df1.columns]
print(df)
   A     B   C   E
0  0   new   t  a1
1  1  new1  t1  1b
2  2     7   c  1c
3  0   new   t  1a
4  4     9   e  1e

答案 1 :(得分:0)

这是一个选择。

##set index to be the same
df1 = df1.set_index('A')
df2 = df2.set_index('A')

##update df1
df1.loc[df2.index,df2.columns] = df2

##reset the index to get it back to a column
df1 = df1.reset_index()