単一レベルのインデックスを持つ Pandas シリーズを取得し、そのインデックスを複数の列を持つデータフレームに分割したいと思います。たとえば、入力の場合:
s = pd.Series(range(10,17), index=['a','a','b','b','c','c','c'])
s
a 10
a 11
b 12
b 13
c 14
c 15
c 16
dtype: int64
私が出力として望むものは次のとおりです。
a b c
0 10 12 14
1 11 13 15
2 NaN NaN 16
マルチインデックスが必要で、単一レベルのインデックスしかないため、unstack コマンドを直接使用することはできません。すべてが同じ値を持つダミーのインデックスを入れようとしましたが、「ReshapeError: インデックスには重複したエントリが含まれています。形状を変更できません」というエラーが発生しました。
1)パンダは不規則な配列を好まないため、パディングが必要になる、2)インデックスを任意にリセットする必要がある、3)データフレームを実際に「初期化」できないため、これは少し珍しいことを知っています最長の列の長さがわかるまで。しかし、これはまだ私が何とかできるはずのことのようです。groupby 経由で行うことも考えましたが、おそらく上記の理由により、集計関数のない grouped_df.values() のようなものはないようです。