我有一个每周数据的表,如下所示:
<表类>
日期
B
C
D
tbody><<tr>1/1/2022 4 5 5 2 1/7/2022 3 5 9 4 1/14/2022 4 8 5 6 1/21/2022 4 6 1 4 表类>
您可以通过使用groupby
和apply
来实现这一点(pct_change
方法密切相关,只能应用于组中的连续行)。
df['Date'] = pd.to_datetime(df['Date'])
df = df.sort_values('Date').set_index('Date')
df.groupby(df.index.year).apply(lambda x: x.iloc[-1].subtract(x.iloc[0]).div(x.iloc[0]))
样本数据的结果:
A B C D
Date
2022 0.0 0.2 -0.8 1.0