熊猫:根据另一个数据框分配值

时间:2018-10-08 13:39:03

标签: python pandas

我必须使用如下数据框:

 df1:          condition        
               A               
               A              
               A               
               B              
               B             
               B           
               B   

 df2:          condition      value   
               A               1
               B               2

我想为每个条件分配其值,在df1中添加一列以获得:

 df1:          condition     value      
               A               1
               A               1
               A               1
               B               2
               B               2
               B               2
               B               2

我该怎么做?预先谢谢你!

1 个答案:

答案 0 :(得分:4)

如果只需要添加一列,则使用mapset_index创建的Series

df1['value'] = df1['condition'].map(df2.set_index('condition')['value'])

print (df1)
  condition  value
0         A      1
1         A      1
2         A      1
3         B      2
4         B      2
5         B      2
6         B      2

如果df2有更多列,请使用merge进行左联接:

df = df1.merge(df2, on='condition', how='left')
print (df)
  condition  value
0         A      1
1         A      1
2         A      1
3         B      2
4         B      2
5         B      2
6         B      2