0

当我的输入系列只有一条记录时,我遇到了 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]。)

但是我看不到如何在这里轻松解决它。

4

0 回答 0