我正在使用panda处理时间序列数据,我的数据帧看起来有点像这个
Date Layer
0 2000-01-01 0.408640
1 2000-01-02 0.842065
2 2000-01-03 1.271810
3 2000-01-04 1.699399
4 2000-01-05 2.128098
... ...
7300 2019-12-27 149.323520
7301 2019-12-28 149.744012
7302 2019-12-29 150.155702
7303 2019-12-30 150.562771
7304 2019-12-31 151.003031
我需要为每年做一个专栏,像这样:
2000 2001 2002
0 0.408640 0.415863 0.425689
1 0.852653 0.826542 0.863524
... ... ...
364 156.235978 158.564578 152.135689
365 156.685421 158.924556 152.528978
我有办法做到这一点吗?生成的数据可以在新的数据帧中
这样做的方法是创建单独的年份和日期列,然后创建一个数据透视表:
#Convert Date column to pandas datetime if you haven't already:
df['Date'] = pd.to_datetime(df['Date'])
#Create year column
df['Year'] = df['Date'].dt.year
#Create day of year column
df['DayOfYear'] = df['Date'].dt.dayofyear
#create pivot table in new dataframe
df2 = pd.pivot_table(df, index = 'DayOfYear', columns = 'Year', values = 'Layer')
这看起来与您想要的输出不完全一样,因为索引将编号为1-365(并有一个名称(,而不是0-364。如果你想让它完全匹配,你可以添加:
df2 = df2.reset_index()