pandas:获取数组中的所有groupby值[重复]
Posted
技术标签:
【中文标题】pandas:获取数组中的所有groupby值[重复]【英文标题】:pandas: get all groupby values in an array [duplicate] 【发布时间】:2019-08-03 04:09:36 【问题描述】:我确定以前有人问过这个问题,如果重复,抱歉。假设我有以下数据框:
df = pd.DataFrame('key': ['A', 'B', 'C', 'A', 'B', 'C'],
'data': range(6), columns=['key', 'data'])
>>
key data
0 A 0
1 B 1
2 C 2
3 A 3
4 B 4
5 C 5
在'key'上做一个groupby,df.groupby('key').sum()
我知道我们可以做这样的事情:
>>
data
key
A 3
B 5
C 7
获取数组中所有“拆分”数据的最简单方法是什么?:
>>
data
key
A [0, 3]
B [1, 4]
C [2, 5]
我不一定只按一个键进行分组,还可以使用其他几个索引(例如“年”和“月”),这就是为什么我想使用 groupby 函数,但保留所有分组的原因数组中的值。
【问题讨论】:
【参考方案1】:你可以使用apply(list)
:
print(df.groupby('key').data.apply(list).reset_index())
key data
0 A [0, 3]
1 B [1, 4]
2 C [2, 5]
【讨论】:
对于数组而不是列表,您可以使用df.groupby('key').data.apply(np.array)
,这对我的操作更方便。
什么是多列并希望将多列中的所有值聚合到一个列表中?
@Moondra df.groupby("Column Name").agg(list)
应该有帮助.. 另一种方法是数据透视表(虽然不是必需的)df.pivot_table(index="Column Name",aggfunc=list)
这对我有用,因为我需要不同的列表/数组项:df.groupby('key').data.unique().reset_index()
这会保留结果列表中的itens顺序吗?以上是关于pandas:获取数组中的所有groupby值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用groupby.last函数获取每个组中的最后一个值实战:groupby.last函数获取每个组中的最后一个值groupby.nth函数获取每个组中的最后一个值
pandas使用groupby.first函数groupby.nth函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)
如何在 pandas 数据框中从 groupby 的结果生成所有值对
pandas使用groupby函数基于指定分组变量对dataframe数据进行分组使用get_group函数获取指定分组变量的具体分类值下的所有样本使用sum函数分组中指定数值变量的聚合加和值