我有一天以下数据框:
BillDate S2Rate
4 2019-06-04 4686.5
3 2019-06-03 1557.5
2 2019-05-21 10073.5
1 2019-05-19 6501.5
0 2019-05-18 1378.0
我想计算WoW百分比,使用此数据增加或减少WoW。我该怎么做?
我又该如何在同比和日复一日中复制它?
我有一天以下数据框:
BillDate S2Rate
4 2019-06-04 4686.5
3 2019-06-03 1557.5
2 2019-05-21 10073.5
1 2019-05-19 6501.5
0 2019-05-18 1378.0
我想计算WoW百分比,使用此数据增加或减少WoW。我该怎么做?
我又该如何在同比和日复一日中复制它?
您应该使用resample。然后,您可以使用pct_change和diff之类的函数来获取差异:
# df["BillDate"] = pd.to_datetime(df["BillDate"])
week_over_week = df.set_index("BillDate").resample("W").sum()
week_over_week_pct = week_over_week.pct_change()
week_over_week_increase = week_over_week.diff()
您可以将resample
的参数每天替换为"D"
,将"Y"
替换为一年,并使用许多其他选项替换更复杂的时间范围。
将BillDate强制设置为日期时间后,将其设置为索引
df.set_index(pd.to_datetime(df['BillDate']),inplace=True)
df
现在将其移至索引,摆脱列中的BillDate
df.drop(columns=['BillDate'],inplace=True)
Resample到要求的时间,计算总和和percentage change
df.resample('W')['S2Rate'].sum().pct_change().to_frame()
请注意,重新采样是采用该时间段的最后一个值。
'W'
-将日期设置为星期日
'M'
-将日期设置为一个月中的最后一个日期