これは私の質問hereのより単純な形式だと思います。[更新: 残念ながらそうではありません。]
次のようなことをすると (Pandas 0.11 で):
df = pd.DataFrame([[1,2],[1,3],[2,4]],columns='a b'.split())
print df
g = df.groupby('a').count()
print type(g)
print g
期待どおりの結果が得られます:
a b
0 1 2
1 1 3
2 2 4
<class 'pandas.core.frame.DataFrame'>
a b
a
1 2 2
2 1 1
ただし、結果のグループが 1 つしかない場合は、代わりに非常に奇妙なシリーズが得られます。
df = pd.DataFrame([[1,2],[1,3],[1,4]],columns='a b'.split())
...
a b
0 1 2
1 1 3
2 1 4
<class 'pandas.core.series.Series'>
a
1 a 3
b 3
Name: 1, dtype: int64
しかし、私は結果がこれと同等の DataFrame であることを望みます:
print pd.DataFrame([[3,3]],index=pd.Index([1],name='a'),columns='a b'.split())
a b
a
1 3 3
シリーズからそれを簡単に取得する方法については行き詰まっています(そもそもなぜそれを取得するのかわかりません)。