当我的输入系列只有一条记录时,我遇到了 pandas(v0.11 或 v0.12)groupby 代码返回不同输出结构的问题。我使用一组固定的垃圾箱,并根据类似于下面的代码计算每个桶中出现的次数。
s0 = pd.Series([1,2,1,3,1,4,1,2,1], name='foo')
s = s0
#s = s0[:0]
#s = s0[:1]
#s = s0[:2]
bins = pd.cut(s,[0,2,4])
s.groupby(bins).count()
对于任何长度的输入序列(1 除外),我得到一个输出序列,每个 bin 有一条记录以及该 bin 的计数,即使它为零。像这样的东西:
foo
(0, 2] 7
(2, 4] 2
dtype: int64
但如果输入序列的长度为 1,我会得到不同结构的输出,如下所示:
((0, 2]) 1
dtype: int64
我想知道这是否与我经常遇到的问题有关,即数据帧的单记录切片变成表示行值的系列,而不是单记录数据帧。(您可以避免使用 df.ix[n:n] 而不是 df.ix[n]。)
但是我看不到如何在这里轻松解决它。