如何使用索引属性转换时间序列熊猫数据框?

Posted

技术标签:

【中文标题】如何使用索引属性转换时间序列熊猫数据框?【英文标题】:How to transform a time series pandas dataframe using the index attributes? 【发布时间】:2015-04-24 04:55:33 【问题描述】:

给定一个具有如下时间序列的数据框:

                      Close
2015-02-20 14:00:00  1200.1
2015-02-20 14:10:00  1199.8
2015-02-21 14:00:00  1199.3
2015-02-21 14:10:00  1199.0
2015-02-22 14:00:00  1198.4
2015-02-22 14:10:00  1199.7

如何应用将其转换为如下数据框的函数:

          '14:00' '14:10'
2015-02-20 1200.1 1199.8
2015-02-21 1199.3 1199.0
2015-02-22 1198.4 1199.7

注意:这是一个简化的示例。实际的数据框也有很多天和所有的盘中分钟。因此,如果它是一个有效的程序,那将是有用的。

谢谢

【问题讨论】:

在您的样本数据中,您只有 2015-02-20 的 14:00 和 14:10 的观察值,您的水平轴不应该有 6 个字段吗? 你是对的。这是一个错字。我已经更正了。 【参考方案1】:

您可以以索引的datetime 组件为轴:

创建框架:

i =pd.to_datetime(['2015-02-20 14:00:00','2015-02-20 14:10:00','2015-02-21 14:20:00'\
               ,'2015-02-21 14:30:00','2015-02-22 14:40:00','2015-02-22 14:50:00'])
df =pd.DataFrame(index=i, data='Close':[1200.1,1199.8,1199.3,1199.0,1198.4,1199.7])

枢轴:

pd.pivot_table(df, index= df.index.date, columns=df.index.time, values = 'Close')

返回:

          14:00:00  14:10:00    14:20:00    14:30:00    14:40:00    14:50:00
2015-02-20  1200.1  1199.8      NaN         NaN         NaN         NaN
2015-02-21  NaN     NaN         1199.3      1199        NaN         NaN
2015-02-22  NaN     NaN         NaN         NaN         1198.4     1199.7

使用aggfunc 作为pivot_table 的参数来确定必要时如何聚合数据

【讨论】:

如何修改 df 以便可以进行 df['14:10:00'] - df['14:00:00'] 之类的计算?谢谢。让我知道我是否应该用这个开始一个新问题。 如果您愿意提供帮助,新问题就在这里。 ***.com/questions/28665361/…

以上是关于如何使用索引属性转换时间序列熊猫数据框?的主要内容,如果未能解决你的问题,请参考以下文章

将索引熊猫矩阵转换为平面数据框

熊猫数据框索引 datetime.date 转换为对象 KeyError

如何在多级列(熊猫)中将一级索引转换为新级别

无法在熊猫数据框中按时间戳索引

如何在熊猫数据框中舍入日期时间索引?

如何在熊猫日期时间数据框中索引打开和关闭?