我必须使用如下所示的数据框:
df1: condition
A
A
A
B
B
B
B
df2: condition value
A 1
B 2
Run Code Online (Sandbox Code Playgroud)
我想为每个条件分配其值,向 df1 添加一列以获得:
df1: condition value
A 1
A 1
A 1
B 2
B 2
B 2
B 2
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?先感谢您!
jez*_*ael 11
使用mapby Seriescreated by set_indexif 只需要追加一列:
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
Run Code Online (Sandbox Code Playgroud)
或者merge如果df2有更多列,则与左连接一起使用:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5650 次 |
| 最近记录: |