我有两个数据框:“数据”和“工作”。我正在尝试将数据合并到 ID 上,以使名称正常工作
Data:
ID Name
a1 a1_Name
a1 a1_Name1
Working:
ID SomeValues
a1 123
a1 456
我希望最终结果每次只匹配第一个找到的 ID,但到目前为止,当我执行类似的操作时
working = pd.merge(working, data, left_on="ID", right_on="ID", sort=False)
我明白了:
Working:
ID SomeValues Name
a1 123 a1_Name
a1 456 a1_Name1
它只是在“a1_Name”和“a1_Name1”之间交替。
我希望它输出:
Working:
ID SomeValues Name
a1 123 a1_Name
a1 456 a1_Name
最佳答案
像这样:
In [3004]: Data['new_name'] = Data.groupby('ID')['Name'].transform('first')
In [3008]: Data.merge(Working, on='ID')[['ID','new_name','SomeValues']].drop_duplicates()
Out[3008]:
ID new_name SomeValues
0 a1 a1_Name 123
1 a1 a1_Name 456
关于python - 合并 Pandas Dataframes 时如何仅使用第一个匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62349552/