我有以下数据并尝试按唯一ID聚合,需要在各自列的一个单元格中获取唯一名称、唯一产品、唯一价格
Unique_id Name Product Price
101 ABC Ltd A 100
102 JKL Ltd B 200
101 ABC Ltd B 200
102 JKL US B 200
103 IHJ Ltd A 100
102 JKL UK C 300
103 IHJ US A 100
101 ABC US A 100
我可以获得以下代码,但它不符合我的要求。
df1 = df.groupby(' Unique_ID'').agg({'Product' : 'first', ‘Price’ : 'first',
'Name’:'first'.join}).reset_index()
下面是我试图获得的输出,但我无法获得正确的代码。
Unique_id Name Product Price
101 ABC Ltd, ABC US A, B 100
102 JKL Ltd, JKL UK B, C 200
103 IHJ Ltd, IHJ US A 100
谢谢。
使用lambda
对您当前的方法进行轻微修改:
print (df.groupby('Unique_id').agg({'Product': lambda d: ", ".join(set(d)),
'Price' : 'first',
'Name':lambda d: ", ".join(set(d))}).reset_index())
Unique_id Product Price Name
0 101 A,B 100 ABC Ltd,ABC US
1 102 C,B 200 JKL Ltd,JKL UK,JKL US
2 103 A 100 IHJ US,IHJ Ltd
这篇关于使用Pandas Groupby连接多行中的字符串,并从逗号分隔的单元格中删除重复项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!
[英文标题]Concatenate strings from multiple rows using Pandas groupby and remove duplicates from the comma separated cell
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。