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 |
完毕!