Pandas 使用熊猫系列按键分组并导出到_dict()

Pandas 使用熊猫系列按键分组并导出到_dict(),pandas,pandas-groupby,series,Pandas,Pandas Groupby,Series,我有一本这样的字典: d = {1:0, 2:0, 3:1, 4:0, 5:2, 6:1, 7:2, 8:0} 我想按.keys()进行分组,如下所示: pandas_ordered = { 0:[1,2,4,8], 1:[3,6], 2:[5,7] } 但是有了这个命令 pd.Series(list(d.values())).groupby(list(partition.keys())).to_dict() 下面是一个例子: # Example: import pandas as pd

我有一本这样的字典:

d = {1:0, 2:0, 3:1, 4:0, 5:2, 6:1, 7:2, 8:0} 
我想按.keys()进行分组,如下所示:

pandas_ordered = { 0:[1,2,4,8], 1:[3,6], 2:[5,7] }
但是有了这个命令

pd.Series(list(d.values())).groupby(list(partition.keys())).to_dict()
下面是一个例子:

# Example:
import pandas as pd

d = {1:0, 2:0, 3:1, 4:0, 5:2, 6:1, 7:2, 8:0} 


def pandas_groupby(dictionary):
   values = list(dictionary.values())
   keys = list(dictionary.keys())
   return pd.Series(values).groupby(keys).to_dict()


pandas_groupby(d)
上述代码产生错误:

AttributeError:无法访问的可调用属性“to_dict” “SeriesGroupBy”对象,请尝试使用“应用”方法


您的
groupby
中的
组已经给出了有关如何执行此操作的任何想法

d = {1:0, 2:0, 3:1, 4:0, 5:2, 6:1, 7:2, 8:0} 
s = pd.Series(d)
s.groupby(s).groups

{0: Int64Index([1, 2, 4, 8], dtype='int64'),
 1: Int64Index([3, 6], dtype='int64'),
 2: Int64Index([5, 7], dtype='int64')}
当然,我们可以始终
agg
和定制

s.groupby(s).agg(lambda x: tuple(x.index)).to_dict()

{0: (1, 2, 4, 8), 1: (3, 6), 2: (5, 7)}

你必须先知道,我本以为答案会这么简单。谢谢