入力シリーズのレコードが 1 つだけの場合に、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 を除く) について、ビンごとに 1 つのレコードを含む出力シリーズを、たとえそれがゼロであっても、そのビンのカウントと共に取得します。このようなもの:
foo
(0, 2] 7
(2, 4] 2
dtype: int64
しかし、入力系列の長さが 1 の場合、次のように異なる構造の出力が得られます。
((0, 2]) 1
dtype: int64
これは、データフレームの単一レコードのスライスが、単一レコードのデータフレームではなく、行の値を表すシリーズに変わる場合によく遭遇する問題に関連しているかどうか疑問に思っています。(これは、df.ix[n] の代わりに df.ix[n:n] の使用を避けることができます。)
しかし、ここで簡単に回避する方法はわかりません。