Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GroupBy对象,其中的条目可以属于多个组_Python_Pandas - Fatal编程技术网

Python GroupBy对象,其中的条目可以属于多个组

Python GroupBy对象,其中的条目可以属于多个组,python,pandas,Python,Pandas,从它所支持的方法来看,在派生的GroupBy对象中多次出现的原始数据帧/序列的标签似乎没有任何问题。例如,是否确实可以从iterable列(如中的)构造GroupBy对象g 这样g将表示一个GroupBy对象,其中a的值中的每个条目对应一个条目?也就是说,我得到的结果是 >>> x.iterable_groupby('a').size() a 0 1 1 2 2 1 >>> x.iterable_groupby('a').mean() b 0 1.0

从它所支持的方法来看,在派生的GroupBy对象中多次出现的原始数据帧/序列的标签似乎没有任何问题。例如,是否确实可以从iterable列(如中的)构造GroupBy对象g

这样g将表示一个GroupBy对象,其中a的值中的每个条目对应一个条目?也就是说,我得到的结果是

>>> x.iterable_groupby('a').size()
a
0 1
1 2
2 1
>>> x.iterable_groupby('a').mean()
    b
0 1.0
1 1.5
2 2.0

您应该将数据框重塑为整洁的数据集。经常要求对零件进行整形

在整洁的数据集中,每一行应该代表一条记录。为此,您可以创建如下“grouper”列:

x['a'].apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('grouper')
Out: 
   grouper
0        0
0        1
1        1
1        2
如果将其与原始数据帧合并,则可以根据需要对其进行分组:

x['a'].apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('grouper').join(x).groupby('grouper').mean()
Out: 
           b
grouper     
0        1.0
1        1.5
2        2.0

重塑部分不是很有效,但据我所知,熊猫还没有提供更好的方法

您应该将数据框重塑为一个整洁的数据集。经常要求对零件进行整形

在整洁的数据集中,每一行应该代表一条记录。为此,您可以创建如下“grouper”列:

x['a'].apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('grouper')
Out: 
   grouper
0        0
0        1
1        1
1        2
如果将其与原始数据帧合并,则可以根据需要对其进行分组:

x['a'].apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('grouper').join(x).groupby('grouper').mean()
Out: 
           b
grouper     
0        1.0
1        1.5
2        2.0
重塑部分不是很有效,但据我所知,熊猫还没有提供更好的方法