我是Python新手。我在 df2 列中有多个相同的名称,假设我不想在 df2 中删除重复的名称。
如何将 df1 中的值(标记)分配给 df2 中不同行中的相同名称?
df1 = pd.DataFrame({'Name': ['rumul', 'rahul',
'ravi', 'imran'],
'Marks': [5, 20, 8, 12]})
df2 = pd.DataFrame({'Name': ['rumul', 'rahul',
'rahul', 'ravi',
'imran','ravi', 'ravi','imran','rahul','ravi'],
'Marks': ['','','','','','','','','','']})
df1
df2
预期输出:
最佳答案
您可以使用映射来避免 merge()
的需要。因为合并会添加额外的列,但不一定会覆盖它。
df2['Marks'] = df2['Name'].map(df1.set_index('Name').to_dict()['Marks'])
这将输出:
Name Marks
0 rumul 5
1 rahul 20
2 rahul 20
3 ravi 8
4 imran 12
5 ravi 8
6 ravi 8
对于相同的输出,您可以使用 pandas replace()
关于python - 将值分配给不同行中的相同名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70026773/