将 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
上应用dict
和tuple
/ list
:
res = dict(tuple(d.groupby('a')))
【讨论】:
你知道有什么方便的groupby
方法吗?
@Kopytok,不,这是不可能的。 groupby
本身不会创建 dict
。您需要在进行一些操作后将其传递给dict
。以上是关于将 pandas.groupby 转换为 dict的主要内容,如果未能解决你的问题,请参考以下文章
将 pandas GroupBy 中的多个列值聚合为 dict