将 pandas.groupby 转换为 dict

Posted

技术标签:

【中文标题】将 pandas.groupby 转换为 dict【英文标题】:Convert pandas.groupby to dict 【发布时间】:2018-11-30 15:56:24 【问题描述】:

考虑一下,数据框d

d = pd.DataFrame('a': [0, 2, 1, 1, 1, 1, 1],
                  'b': [2, 1, 0, 1, 0, 0, 2],
                  'c': [1, 0, 2, 1, 0, 2, 2]
>   a   b   c
0   0   2   1
1   2   1   0
2   1   0   2
3   1   1   1
4   1   0   0
5   1   0   2
6   1   2   2

我想将它按列 a 拆分成这样的字典:

0:    a  b  c
    0  0  2  1,

 1:    a  b  c
    2  1  0  2
    3  1  1  1
    4  1  0  0
    5  1  0  2
    6  1  2  2,

 2:    a  b  c
    1  2  1  0

我使用pandas.groupby 找到的解决方案是:

k: table for k, table in d.groupby("a")

其他解决方案是什么?

【问题讨论】:

我认为您拥有的是优雅的。为什么不满意? 【参考方案1】:

您可以在groupby 上应用dicttuple / list

res = dict(tuple(d.groupby('a')))

【讨论】:

你知道有什么方便的groupby方法吗? @Kopytok,不,这是不可能的。 groupby 本身不会创建 dict。您需要在进行一些操作后将其传递给dict

以上是关于将 pandas.groupby 转换为 dict的主要内容,如果未能解决你的问题,请参考以下文章

将 pandas GroupBy 中的多个列值聚合为 dict

通过 matplotlib 和 seaborn 将 pandas groupby 转换为图表

pandas groupby 并转换为 json 列表

Pandas groupby 并将函数应用于数字列

Pandas groupby并将函数应用于数字列

Pandas - Groupby 多索引级别,获取可能的组合,然后转换数据