私はこのようなデータフレームがあります。異なる挙動は
A B value
2014-11-14 12:00:00 30.5 356.3 344
2014-11-15 00:00:00 30.5 356.3 347
2014-11-15 12:00:00 30.5 356.3 356
2014-11-16 00:00:00 30.5 356.3 349
...
2017-01-06 00:00:00 30.5 356.3 347
を、私は最初から最後までそこにいることを確認したいミッシング回ません(つまり、インデックスが行きますより大きなジャンプなしで12〜12時間)。行方不明の日がある場合は、たとえば、欠損値は、2015年12月12日12時00分00秒であった場合には、例えば、私はこのような行を追加したいと思います:
...
2015-12-12 00:00:00 30.5 356.3 323
2015-12-12 12:00:00 30.5 356.3 NaN *<- add this*
2015-12-13 00:00:00 30.5 356.3 347
の質問それを行う方法は@ ted-petrouによってResampling dataframe in pandas as a checking operationここで解決されました。ソリューションはやっていた:
df1= df.asfreq('12H')
df1[['A','B']] = df1[['A','B']].fillna(method='ffill')
私の質問:私はresample
の代わりasfreq
でそれを行うことができますか?行うこと
df1= df.resample('12H')
df1[['A','B']] = df1[['A','B']].fillna(method='ffill')
私はValueError: cannot set items on DatetimeIndexResampler
を取得します。なぜか分からない。この場合、同じ操作ではないresample
とasfreq
?私は何が欠けていますか?前もって感謝します。
ありがとうございました!再サンプルの後に 'asfreq()'を追加しなければならないかどうかはわかりませんでした。私はここでのようにリサンプリングが十分であると思った:http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.resample.html?highlight=resample#pandas.DataFrame.resampleこれは最近のバージョンでは変更されています。私はWes McKinneyの本を持っていて、彼は古い方法でそれをやります(私はすぐに新しい本が来ると思います)。 – David
ええ、以前の(おそらく<'v0.18')' .resample'には、グループ全体に平均をとるようにデフォルト設定された 'how'引数がありました。しかし、これを次の連鎖構文として独立して指定する必要があります。 –