python - 合并 Pandas Dataframes 时如何仅使用第一个匹配项?

标签 python pandas dataframe merge

我有两个数据框:“数据”和“工作”。我正在尝试将数据合并到 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/

相关文章:

python - 串行数据记录器,即时解析

python - 仅将列表中的项目保留在包含某些字符的数据框中

python - 将缺失的类别追加到行中

python - 动态 - 自动乘法 - Pandas 数据帧

python - 时间序列数据的异常值检测

python - 使用 Pandas 数据框列中的整数从另一列内的列表中提取特定值

python - 退出函数在带有 python 的 OpenCV 中不起作用

python - 获取给定数字列表计算 X 的所有组合

python - 枚举的实现细节是什么?

r - 将数据帧的名称传递到 r 中的循环中