使用来自另一个DataFrame的Series映射多个列

时间:2019-06-17 14:52:59

标签: python pandas

我有两个DataFrame。我需要根据{{的值}用B的值替换C的{​​{1}},Ddf1列中的文本1}}。

  

df1

df2['SC']
  

df2

df2['Title']
  

所需的输出:

A     B      C      D
Dave  Green  Blue   Yellow
Pete  Red
Phil  Purple

1 个答案:

答案 0 :(得分:2)

使用stack + map + unstack

df1.set_index('A').stack().map(df2.set_index('Title')['SC']).unstack()

        B    C    D
A
Dave  2.0  2.0  3.0
Pete  3.0  NaN  NaN
Phil  4.0  NaN  NaN

如果一列包含 all NaN,它将丢失。为避免这种情况,您可以reindex

.reindex(df1.columns, axis=1)             # append to previous command