Pandas 使用时间索引计算特定时间间隔(例如每天)的数据帧列的积分
我有一个数据框(df),其中包括一年的功率传感器数据。数据以不规则的频率采样。我的df与此类似:Pandas 使用时间索引计算特定时间间隔(例如每天)的数据帧列的积分,pandas,Pandas,我有一个数据框(df),其中包括一年的功率传感器数据。数据以不规则的频率采样。我的df与此类似: rng = pd.date_range('2020-07-30 12:00:00', periods=24, freq='6H') df = pd.DataFrame(np.array([1, 4, 5, 2, 1, 6, 1, 4, 5, 2, 1, 6, 1, 4, 5, 2, 1, 6, 1, 4, 5, 2, 1, 6]), rng, columns=['power']) df.in
rng = pd.date_range('2020-07-30 12:00:00', periods=24, freq='6H')
df = pd.DataFrame(np.array([1, 4, 5, 2, 1, 6, 1, 4, 5, 2, 1, 6, 1, 4, 5, 2, 1, 6, 1, 4, 5, 2, 1, 6]), rng, columns=['power'])
df.index.name = 'Date'
df["month"] = df.index.month
df["week"] = df.index.week
我想做的是计算每天的积分,然后能够将不同持续时间的积分相加,例如每周、每月等
对于整个数据框,下面给出正确的答案(他们考虑X轴上的时间):
或 当我每天尝试整合时,我尝试了:df.groupby(df.index.date)["power"].apply(np.trapz)
它有两个问题:
df.groupby(df.index.date)["power"].apply(integrate.trapz, args=(df.index,))
但是我得到:TypeError:trapz()得到了一个意外的关键字参数'args'
我希望我的结果如下所示:
Date Energy(kWh)
2020-07-30 15
2020-07-31 78
2020-08-01 84
2020-08-02 66
2020-08-03 78
2020-08-04 84
2020-08-05 30
然后能够分组,例如
df = df.groupby(["month", "week"])["power"].sum()
结果如下:
month week Energy(kWh)
7 31 93
8 31 150
32 192
那么,我如何在集成中使用初始数据帧的索引呢
df = df.groupby(["month", "week"])["power"].sum()
month week Energy(kWh)
7 31 93
8 31 150
32 192