Pandas矩阵的小时序列

2024-10-02 00:42:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把每小时的Pandas Series转换成DataFrame作为DataFrame索引,只以日期和每小时作为一列。你知道吗

例如,假设我有一个系列:

YEAR = 2017
serie = pd.Series(pd.date_range(
        start=f'{YEAR}-01-01', end=f'{YEAR}-12-31 23:00:00', freq='H'))

但我想要这样:

                             h01      h02      h03     h04     h05  ...
Date
2017-01-01                   data    data     data     data   data  ...

Tags: dataframepandasdatadaterangeyearstartend
1条回答
网友
1楼 · 发布于 2024-10-02 00:42:12

我相信你的SeriesDatetimeIndex在一起,并且填充了一些数据。你知道吗

对于由^{}^{}以及^{}创建的新列,需要^{}^{},对于一列DataFrame

YEAR = 2017
serie = pd.Series(np.arange(8760), pd.date_range(
        start=f'{YEAR}-01-01', end=f'{YEAR}-12-31 23:00:00', freq='H'))

df = serie.to_frame('vals').assign(date = lambda x: x.index.date,
                                   hour = lambda x: x.index.strftime('h%H'))
#print (df)


df1 = df.pivot('date','hour','vals')
#print (df1)

另一种解决方案:

serie.index = [serie.index.date, serie.index.strftime('h%H')]
df1 = serie.unstack()

相关问题 更多 >

    热门问题