根据一个唯一的键将数据框架的多条记录折叠成一条记录[英] Collapse mutiple rows of a dataframe into one row - based on a unique key

本文是小编为大家收集整理的关于根据一个唯一的键将数据框架的多条记录折叠成一条记录的处理方法,想解了根据一个唯一的键将数据框架的多条记录折叠成一条记录的问题怎么解决?根据一个唯一的键将数据框架的多条记录折叠成一条记录问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个数据框:

1 A1
1 A11
2 A2
2 A22
2 A23
3 A3
3 A33
4 A4
4 A44
4 A444
5 A5

我需要的是:-

1 |  A1, A11 
2 | A2, A22, A23
3 | A3, A33
4 | A4, A44, A444 
5 | A5 

即.每列可以有不同的行数.

无论如何,我可以优雅地折叠它们,而无需使用从 dict 读取然后 concat 到适用的列表.在传统意义上,我需要对此执行多个连接 - 有什么办法吗?

请注意,最后应该只有 2 列.

推荐答案

df =pd.DataFrame({'A':[1,1,1,2,2,3,3,3],    'B':['aaa','bbb','cc','gg','aaa','bbb','cc','gg']})

def f(x):
    return [x['B'].values]

df.groupby('A').apply(f)

在要减少的列上创建一个分组依据,然后应用一个函数,该函数按每组的一个列表返回分组结果.请注意,这会返回一个系列.

更新:将系列更改为数据框.

series =df.groupby('A').apply(f)
series.name = 'metric'
series.reset_index()

本文地址:https://www.itbaoku.cn/post/1727794.html