我有一个包含500,000行的dataframe1。我想通过在dataframe2中找到包含配置的Model号来填充配置列。
Dataframe1:
Model Date Status Configuration
A4 10/2014 Inop
A4 11/2014 Op
A4 11/2014 Op
G5 10/2014 Inop
G5 11/2014 Inop
G5 11/2014 Op
G8 10/2014 Op
G8 11/2014 Op
G8 11/2014 Op
G8 10/2014 Inop
Z2 11/2014 Op
Z2 11/2014 Op
Dataframe2:
Model Configuration
A4 ICS
G5 PCS
G8 ICS
Z2 1/2 ICS
我正在运行的代码:
for Model, group in dataframe1.groupby('Model'):
#gets configuration from dataframe2
config = get_configuration(Model)
#attempt to assign configuration to all columns with that model number in dataframe1
dataframe1['Config'] = con
此代码返回:
此代码按型号分组dataframe1并成功获取每个组配置,但我无法将该配置应用于dataframe1中的新行,以获得以下结果:
Model Date Status Configuration
A4 10/2014 Inop ICS
A4 11/2014 Op ICS
A4 11/2014 Op ICS
G5 10/2014 Inop PCS
G5 11/2014 Inop PCS
G5 11/2014 Op PCS
G8 10/2014 Op ICS
G8 11/2014 Op ICS
G8 11/2014 Op ICS
G8 10/2014 Inop ICS
Z2 11/2014 Op 1/2 ICS
Z2 11/2014 Op 1/2 ICS
答案 0 :(得分:3)
使用map
Dataframe1['Config'] = Dataframe1['Model'].map(Dataframe2.set_index('Model').Config)
Dataframe1
Model Date Status Config
0 A4 10/2014 Inop ICS
1 A4 11/2014 Op ICS
2 A4 11/2014 Op ICS
3 G5 10/2014 Inop Non ICS
4 G5 11/2014 Inop Non ICS
5 G5 11/2014 Op Non ICS
6 G8 10/2014 Op ICS
7 G8 11/2014 Op ICS
8 G8 11/2014 Op ICS
9 G8 10/2014 Inop ICS
10 Z2 11/2014 Op 1/2 ICS
11 Z2 11/2014 Op 1/2 ICS
答案 1 :(得分:1)
尝试pd.merge
Dataframe1.merge(Dataframe2,left_on='Model',right_on='Model',how='left')