从具有可变时间步长的模拟数据中,我有一个不规则的时间向量作为我的值的索引,它们存储在 pandas.DataFrame 中。
让我们考虑一个简化的测试用例:
import pandas as pd
import datetime
time_vec = [datetime.time(0,0),datetime.time(0,0),datetime.time(0,5),datetime.time(0,7),datetime.time(0,10)]
df = pd.DataFrame([1,2,4,3,6],index = time_vec)
使用 normaldf.mean()
函数将得到答案 3.2,这仅在时间向量等距的情况下才成立。
我认为第一个时间步长(零秒长)的正确结果是 3.55,平均值是 1.5,第二个时间步长平均值是 3(五分钟长)等等,这导致:
1.5 * 0 + 3*5 + 3.5 * 2 + 4.5 * 3 = 35.5
这导致平均值为 3.55 (35.5 / (0 + 5 + 2 + 3))。
有没有一种有效的方法可以用熊猫做到这一点?
这最终应该会导致类似
df.resample('15M',how = 'This very Method I am looking for')
创建具有等距时间向量的平均值。