熊猫:获取数组中的所有groupby值

ru1*_*111 3 pandas split-apply-combine pandas-groupby

我确定这已经被问过了,如果重复的话,对不起。假设我有以下数据框:

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
Run Code Online (Sandbox Code Playgroud)

对“键”进行分组,df.groupby('key').sum()我知道我们可以做以下事情:

>> 
    data
key 
A   3
B   5
C   7
Run Code Online (Sandbox Code Playgroud)

获取数组中所有“拆分”数据的最简单方法是什么?

>> 
    data
key 
A   [0, 3]
B   [1, 4]
C   [2, 5]
Run Code Online (Sandbox Code Playgroud)

我不一定只按一个键进行分组,但也要按其他几个索引进行分组(例如“年”和“月”),这就是为什么我想使用groupby函数,但将所有分组值保留在一个键中的原因。数组。

ank*_*_91 6

您可以使用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]
Run Code Online (Sandbox Code Playgroud)

  • 嘿,我收到错误``错误:'DataFrameGroupBy'对象没有属性'数据'```。我的代码行是 ```main_group = main.groupby(["new-date", 'seller_identifier', 'affiliate_name']).data.apply(np.array).reset_index()``` 任何解决方案? (3认同)
  • 对于数组而不是列表,您可以执行`df.groupby('key').data.apply(np.array)`,这对我的操作更方便。 (2认同)