2
パンダの新しいので、私に同行してください。パンダ - 複数の列でグループ分けされた移動平均
私のデータフレームは
date,name,country,tag,cat,score
2017-05-21,X,US,free,4,0.0573
2017-05-22,X,US,free,4,0.0626
2017-05-23,X,US,free,4,0.0584
2017-05-24,X,US,free,4,0.0563
2017-05-21,X,MX,free,4,0.0537
2017-05-22,X,MX,free,4,0.0640
2017-05-23,X,MX,free,4,0.0648
2017-05-24,X,MX,free,4,0.0668
は私が国/タグ/カテゴリグループ内のX日移動平均を見つけるために、方法を考え出すしようとしているフォーマットであるので、私は必要があります。
date,name,country,tag,cat,score,moving_average
2017-05-21,X,US,free,4,0.0573,0
2017-05-22,X,US,free,4,0.0626,0.0605
2017-05-23,X,US,free,4,0.0584,0.0594
2017-05-24,X,US,free,4,0.0563,and so on
...
2017-05-21,X,MX,free,4,0.0537,and so on
2017-05-22,X,MX,free,4,0.0640,and so on
2017-05-23,X,MX,free,4,0.0648,and so on
2017-05-24,X,MX,free,4,0.0668,and so on
私はpd.rolling_mean使用して、その後、私は必要な列によってグループ化の行に何かをしようとしたが、私はNaNでの
df.groupby(['date', 'name', 'country', 'tag'])['score'].apply(pd.rolling_mean, 2, min_periods=2) # window size 2
の束で終わります
これを正しく行うにはどうすればいいですか?
あなたは 'date'でグループいけない:' df.groupby([ '名前'、 '国'、 'タグ'])[ 'df.groupby([' col1 '、' col2 '])[' score '] apply(pd.rolling_mean、2、min_periods = 2) ' – Wen
あなたのデータを再作成しませんでしたが、 'col3']。apply(lambda x:x.rolling(window = 3、center = True).mean()) 'それはうまくいきました。 'rolling_mean'は推奨されておらず、代わりに' rolling'を使うべきです。 –
ありがとう@Wen、 'date'によるグループ分けは私の最後で大きなエラーでした – Craig