pandas中如何合并DataFrame多行记录
如下DataFrame, 有三个列site
、material
、LT
,现需要根据material
把site
去重后合并,并取出LT
最大值。
1 | df = pd.DataFrame([['FJZ','A123',123], |
原始DataFrame数据如下:
1 | site material LT |
直接groupby
后join
:
1 | df.groupby('material').agg({'site': ','.join, 'LT': max}).reset_index() |
处理后数据如下:
1 | material site LT |
第二行数据中,site
列的FJZ
出现了重复。
这里我们换一种思路,由于site
列涉及去重、拼接两个步骤,可以先定义一个处理函数,把这两个步骤串起来。
1 | def agg_func(items): |
然后再调用这个函数:
1 | df.groupby('material').agg({'site': agg_func, 'LT': max}).reset_index() |
最后效果如下:
1 | material site LT |
完毕!