我有一个表,我想根据group by中赋值的数值,从小到大,组合成一个长字符串。
这是我的数据框:
df = pd.DataFrame({'RTG_CODE':['RTG0538','RTG0538','RTG0538','RTG0538','RTG0538','RTG0538','RTG0538','RTG350001','RTG350001','RTG350001','RTG353904','RTG353904','RTG353904','RTG353904','RTG353904','RTG373902','RTG373902','RTG373902','Baltic','Baltic','Baltic','RTG407002','RTG407002','RTG407002','RTG407002','RTG407002'],'ELEMENT': ['TM~WCO~BKBK','AY~JHGT~BKBK','AY~EHUY~BKBK','AY~RUYI~BKBK','FT~QQ~BKBK','CM~ROIP~BKBK','CM~PPOI~BKBK','TM~WCO~10030269','AY~SO-3.9-4.9.SOT96SD112~10030269','FT~SG~10030269','TM~WCO~KHKH','AY~HVQFN.SOT617CD35~KHKH','AY~WB-QFN-ADV~KHKH','AY~SG-QFN-5X5~KHKH','FT~3L/F~KHKH','TM~WCO~10030269','AY~HVSON.SOT782HA16~10030269','FT~SG~10030269','TM~WCO~10034140','AY~DHX2QFN-2.4-2.SOT1442AA1~10034140','FT~HM/F~10034140','TM~WCO~KHKH','AY~HVQFN.SOT617CD39~KHKH','AY~WB-QFN-ADV~KHKH','FT~DQ/F~KHKH','FTT~FT0010330035/F~KHKH'],'ASSIGNMENT': [-50,110,120,130,200,300,380,-50,130,200,-50,110,120,130,200,-50,120,200,-50,130,200,-50,120,130,200,250]})
df:
我想获得一个用于合并的列。
df_output = pd.DataFrame({'RTG_CODE': ['RTG0538','RTG350001','RTG353904','RTG373902','Baltic','RTG407002'],'MERGED': ['TM~WCO~BKBK::AY~JHGT~BKBK::AY~EHUY~BKBK::AY~RUYI~BKBK::FT~QQ~BKBK::CM~ROIP~BKBK::CM~PPOI~BKBK','TM~WCO~10030269::AY~SO-3.9-4.9.SOT96SD112~10030269::FT~SG~10030269','TM~WCO~KHKH::AY~HVQFN.SOT617CD35~KHKH::AY~WB-QFN-ADV~KHKH::AY~SG-QFN-5X5~KHKH::FT~3L/F~KHKH','TM~WCO~10030269::AY~HVSON.SOT782HA16~10030269::FT~SG~10030269','TM~WCO~10034140::AY~DHX2QFN-2.4-2.SOT1442AA1~10034140::FT~HM/F~10034140','TM~WCO~KHKH::AY~HVQFN.SOT617CD39~KHKH::AY~WB-QFN-ADV~KHKH::FT~DQ/F~KHKH::FTT~FT0010330035/F~KHKH']})
我想要的输出:
如有任何帮助,我们将不胜感激!
看起来你希望你的字符串由
'::'
连接,所以我想你可以尝试:
df.groupby(['RTG_CODE'])['ELEMENT'].agg('::'.join).reset_index()
举个更简单的例子:
df = pd.DataFrame({'code':['hey','test','test','hi'], 'col':['a','b','c','d']})
code col
0 hey a
1 test b
2 test c
3 hi d
df.groupby(['code'])['col'].agg('::'.join).reset_index()
结果:
code col
0 hey a
1 hi d
2 test b::c