0
Pandasのローリング機能は、行数または日付/時刻の列に応じてローリング統計を計算することしかできません。しかし、私はローリング合計を計算するための離散時間列、このような何かがしたい:カスタム時間列のローリングサムを計算するにはどうすればよいですか?
key time value output
A 1 10 10
A 2 20 30(10+20)
A 4 30 60(10+20+30)
A 7 10 40(30+10)
B 1 15 15
B 2 30 45
B 3 15 60
:
key time value
A 1 10
A 2 20
A 4 30
A 7 10
B 1 15
B 2 30
B 3 15
私はkey
することにより、第1のグループにしたいが、その後、最寄りの3 time
ためvalue
の圧延合計を計算
私はこの試みた:
grouped = input.groupby("key", as_index=False)
for name, group in grouped:
group = group.sort_values("time")
time = list(group["time"])
value = list(group["value"])
#calcRollingStat is a custom function that outputs a list of corresponding results
out = calcRollingStat(time, value, mode="avg")
group["output"] = out #out is a list
をしかし、私は、データフレームにgrouped
バックを変換する方法を知りません。パンダスは、にはreset_index
という属性がないと言っています。
私のコードはこれを行うための最良の方法ですか?どのようにこの問題に取り組んでいますか?
ありがとうございました!
ありがとうございました!私も 'apply'を使って試しましたが、私は関数に' return group'を持っていなければならないと気づきませんでした。 – DarkZero
喜んで助けてください!いい日! – jezrael