2013-07-29 12 views
7

pandasシリーズオブジェクトでgroupbyを実行できません。 DataFramesは問題ありませんが、Seriesでgroupbyを行うことはできません。誰もこれを働かせることができましたか?groupby for pandasシリーズが動作しない

>>> import pandas as pd 
>>> a = pd.Series([1,2,3,4], index=[4,3,2,1]) 
>>> a 
4 1 
3 2 
2 3 
1 4 
dtype: int64 
>>> a.groupby() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/share/apps/install/anaconda/lib/python2.7/site-packages/pandas/core/generic.py", line 153, in groupby 
    sort=sort, group_keys=group_keys) 
    File "/share/apps/install/anaconda/lib/python2.7/site-packages/pandas/core/groupby.py", line 537, in groupby 
    return klass(obj, by, **kwds) 
    File "/share/apps/install/anaconda/lib/python2.7/site-packages/pandas/core/groupby.py", line 195, in __init__ 
    level=level, sort=sort) 
    File "/share/apps/install/anaconda/lib/python2.7/site-packages/pandas/core/groupby.py", line 1326, in _get_grouper 
    ping = Grouping(group_axis, gpr, name=name, level=level, sort=sort) 
    File "/share/apps/install/anaconda/lib/python2.7/site-packages/pandas/core/groupby.py", line 1203, in __init__ 
    self.grouper = self.index.map(self.grouper) 
    File "/share/apps/install/anaconda/lib/python2.7/site-packages/pandas/core/index.py", line 878, in map 
    return self._arrmap(self.values, mapper) 
    File "generated.pyx", line 2200, in pandas.algos.arrmap_int64 (pandas/algos.c:61221) 
TypeError: 'NoneType' object is not callable 

答えて

10

あなたはシリーズの値をGROUPBYする必要がある場合は

In [6]: a 
Out[6]: 
4 1 
3 2 
2 3 
1 4 
dtype: int64 

In [7]: a.groupby(a.index).sum() 
Out[7]: 
1 4 
2 3 
3 2 
4 1 
dtype: int64 

In [3]: a.groupby(lambda x: x % 2 == 0).sum() 
Out[3]: 
False 6 
True  4 
dtype: int64 
2

(辞書/機能/インデックスすることができる)いくつかの種類のマッピングを渡す必要があります:

grouped = a.groupby(a) 

grouped = a.groupby(lambda x: a[x])