1
2レベルのマルチインデックスパンダのデータフレームを再インデックスしようとしています。データ構造体は次のようになります。パンダのデータフレームでマルチインデックスを再インデックスする
In [1]: df.head(5)
Out [1]: arrivals departs
station datetime
S1 2014-03-03 07:45:00 1 1
2014-03-03 09:00:00 2 1
2014-03-03 11:45:00 1 1
2014-03-04 08:45:00 1 1
2014-03-04 09:45:00 2 1
私は15分間隔でdatetime
ギャップを埋めるためにしたいが、私は
In [2]: df.reindex(pd.date_range(start='2014-03-03 07:45:00',
end='2014-03-04 07:45:00', freq='15min'), level=1)
を呼び出すとき、私は、まったく同じデータフレームを取得します。私は、次の
Out [2]: arrivals departs
station datetime
S1 2014-03-03 07:45:00 1 1 <-- original row
2014-03-03 08:00:00 0 0 <-- filled in row
2014-03-03 08:15:00 0 0 <-- filled in
2014-03-03 08:30:00 0 0 <-- filled in
2014-03-03 08:45:00 0 0 <-- filled in
2014-03-03 09:00:00 2 1 <-- original
etc...
任意のアイデアのようなものを期待しましたか?
。インデックスから 'station'を削除すると、datetimeの重複した値が得られます。再インデックスをしようとすると、私は 'ValueError:重複する軸から再インデックスできません 'を取得します。これを回避する方法に関するアイデア? – misterte
正解、代わりにスタックを使用する答えを変更しました – Boud
はい、これは正しいです。単に 'swaplevel()'の代わりに 'swaplevel(0,1)'を使用しなければなりませんでした。ありがとう! – misterte