Python 时间序列的透视表和周期索引

Python 时间序列的透视表和周期索引,python,pandas,time-series,pivot-table,Python,Pandas,Time Series,Pivot Table,我有一个数据集,我想准备作为时间序列数据进行可视化 import pandas as pd import numpy as np df = pd.read_excel('mypath.xlsx', usecols=['Account', 'Jan', 'Feb', 'Mar']) df Account Jan Feb Mar 0 300 NaN NaN NaN 1 310 -33 -33 -33 2 320 10 5 7 现在,我希望将这个数据帧作为轴心,将Acco

我有一个数据集,我想准备作为时间序列数据进行可视化

import pandas as pd
import numpy as np

df = pd.read_excel('mypath.xlsx', usecols=['Account', 'Jan', 'Feb', 'Mar'])

df

Account Jan Feb Mar
0   300 NaN NaN NaN
1   310 -33 -33 -33
2   320  10   5   7
现在,我希望将这个数据帧作为轴心,将Account列作为顶行,理想情况下,将月份(1月、2月、3月)作为索引,并转换为period_索引,这样我就可以计算时间增量等等

所以我这样做:

df = df.pivot_table(df, columns = ['Account'], fill_value = 0)

Account 300 310 320 
Feb       0 -33   5
Jan       0 -33  10
Mar       0 -33   7
在本例中,我如何将1月、2月、3月作为一个期间指数,并像实际指数一样工作

#############################

获取周期指数的解决方案如下所示:

idx = pd.to_datetime('2018-' + df.index)
print(idx)

[OUT]
DatetimeIndex(['2018-02-01', '2018-01-01', '2018-03-01'], dtype='datetime64[ns]', freq=None)
现在转换为句点索引格式

df.index = idx.to_period(freq='M')
print(df.index)

[OUT]
PeriodIndex(['2018-02', '2018-01', '2018-03'], dtype='period[M]', freq='M')
最终看起来是这样的:

Account 300 310 320 
2018-02   0 -33   5
2018-01   0 -33  10
2018-03   0 -33   7

您只需根据需要修改索引即可-

df.index = pd.to_datetime('2018-' + df.index)

因此,如果您的行索引如问题中所述顺序混乱,那么您也可以将其转换为datetime。

您只需将索引修改为-

df.index = pd.to_datetime('2018-' + df.index)
因此,如果您的行索引如问题中所描述的顺序混乱,那么您也可以将其转换为datetime。

使用+

使用+


这个解决方案实际上也非常有效。上面的内容比较短,因此我选择它作为解决方案。希望这对你没问题。这个解决方案实际上也很好用。上面的内容比较短,因此我选择它作为解决方案。希望你没事。