如果我有两个像这样的两个数据框:
import pandas as pd
df1 = pd.DataFrame({'Type':list('AABAC')})
df2 = pd.DataFrame({'Type':list('ABCDEF'), 'Value':[1,2,3,4,5,6]})
Type
0 A
1 A
2 B
3 A
4 C
Type Value
0 A 1
1 B 2
2 C 3
3 D 4
4 E 5
5 F 6
我想基于df2中的值在df1中添加一列。df2仅包含唯一值,而df1每个值都有多个条目。因此,生成的df1应该如下所示:
Type Value
0 A 1
1 A 1
2 B 2
3 A 1
4 C 3
我的实际数据帧df1很长,因此我需要一些有效的东西(我在循环中尝试过,但这要花很多时间)。
您可以dict
从您的df2
withto_dict
方法创建,然后将map
结果生成到Type
列df1
:
replace_dict = dict(df2.to_dict('split')['data'])
In [50]: replace_dict
Out[50]: {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6}
df1['Value'] = df1['Type'].map(replace_dict)
In [52]: df1
Out[52]:
Type Value
0 A 1
1 A 1
2 B 2
3 A 1
4 C 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句