私はこのようになりますデータフレーム持っている:最初の列は、ユーザIDで、2番目の列は日付(その結果であるパンダDATAFRAME補間/再サンプリング毎日のデータを
userid date count
a 2016-12-01 4
a 2016-12-03 5
a 2016-12-05 1
b 2016-11-17 14
b 2016-11-18 15
b 2016-11-23 4
をgroupby(pd.TimeGrouper( 'd'))から3番目のカラムは日々のカウントですが、ユーザごとに、ユーザの最小値と最大値の間に欠けている日数が0になるようにしたいと思います上記のようなデータフレームから始めれば、次のようなデータフレームになります。
userid date count
a 2016-12-01 4
a 2016-12-02 0
a 2016-12-03 5
a 2016-12-04 0
a 2016-12-05 1
b 2016-11-17 14
b 2016-11-18 15
b 2016-11-19 0
b 2016-11-20 0
b 2016-11-21 0
b 2016-11-22 0
b 2016-11-23 4
私はパンダのデータフレームでリサンプリング(前方、後方、平均を補間するために選択するオプションがあります)がありますが、上記の意味でこれをどのようにして行うのですか。各ユーザーIDが、ユーザーごとに時系列の日付が異なる場合ここで
が、私はそれが働いていないしようとしたものです:
grouped_users = user_daily_counts.groupby('user').set_index('timestamp').resample('d', fill_method = None)
ただし、これはエラーAttributeError: Cannot access callable attribute 'set_index' of 'DataFrameGroupBy' objects, try using the 'apply' method
をスローします。私はしたいと思うようにすべての列を転送しながら、私はどのようにapply
メソッドを使用することができるだろうか分かりません。
ありがとうございました!
ありがとう!私はset_indexを並べ替えることは考えていませんでしたが、実際には、重複した日付があるのに何らかの形でインデックスを設定しているという意味で私は常に混乱していますか? – helloB
はい、グループごとに一意である必要があります。受け入れていただきありがとうございます。 – jezrael