使用panda从另一个数据帧创建具有相应值的列.DataFrame.merge


编辑:我已将data1.code1更改为具有重复值。。。原始帖子没有重复的值

我想用熊猫在df中创建一个列。DataFrame.merge。我希望df2有一个与df1.name1相对应的列"name2"。例如,103对应于df1中的E,所以我希望df2.name2在两个103的旁边有E。

data1 = {'code1':[101, 101, 103, 104, 105, 106], 
'name1':['A', 'A', 'E', 'B', 'B', 'C']}

# Create DataFrame 
df1 = pd.DataFrame(data1)
print(df1)

data2 = {'code2':[101, 101, 102, 103, 103, 106]}

# Create DataFrame 
df2 = pd.DataFrame(data2)
print(df2)

data3 = {'code3':[101, 102, 102, 103, 103, 106], 
'name3':['A', 'A', 'A', 'E', 'E', 'C']}
what_i_want_df2_to_be = pd.DataFrame(data3)
print(what_i_want_df2_to_be)

尝试

df2['name3'] = df2.code2.map(df1.set_index('code1')['name1'])
df2
Out[411]: 
code2 name3
0    101     A
1    102     A
2    102     A
3    103     E
4    103     E
5    106     C

最新更新