编辑:我已将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