编辑:我已将data1.code1更改为重复值...原始帖子没有重复的值
我想使用pandas.DataFrame.merge在df中创建一个列。我希望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)发布于 2021-03-23 03:36:01
尝试使用
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 Chttps://stackoverflow.com/questions/66752580
复制相似问题