我怀疑这是我的问题的一种更简单的形式。[更新:不幸的是不是这样。]
如果你做这样的事情(在 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
但是如果只有一个结果组,你会得到一个非常奇怪的系列:
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
我对如何从该系列中轻松获得这一点感到困惑(并且不确定我为什么首先得到它)。