Sri*_*s K 3 pandas pandas-groupby
我有以下数据并尝试按唯一 id 进行聚合,并且需要在各自列的一个单元格中获取唯一名称、唯一产品、唯一价格
\n\nUnique_id Name Product Price\n101 ABC Ltd A 100\n102 JKL Ltd B 200\n101 ABC Ltd B 200\n102 JKL US B 200\n103 IHJ Ltd A 100\n102 JKL UK C 300\n103 IHJ US A 100\n101 ABC US A 100\nRun Code Online (Sandbox Code Playgroud)\n\n可以获得以下代码,但它不符合我的要求。
\n\ndf1 = df.groupby(' Unique_ID'').agg({'Product' : 'first', \xe2\x80\x98Price\xe2\x80\x99 : 'first', \n 'Name\xe2\x80\x99:'first'.join}).reset_index()\nRun Code Online (Sandbox Code Playgroud)\n\n下面是我试图获得的输出,但我无法获得正确的代码。
\n\nUnique_id Name Product Price\n101 ABC Ltd, ABC US A, B 100\n102 JKL Ltd, JKL UK B, C 200\n103 IHJ Ltd, IHJ US A 100\nRun Code Online (Sandbox Code Playgroud)\n\n谢谢。
\n使用以下方法对当前方法进行轻微修改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
Run Code Online (Sandbox Code Playgroud)