【问题标题】:Custom display of time series data using Pandas使用 Pandas 自定义显示时间序列数据
【发布时间】:2015-02-14 08:30:12
【问题描述】:

我想将普通的索引时间序列数据框转换为使用小时属性作为索引的数据框,但在列中显示天数数据。让我们看一个例子。

我有一个看起来像这样的 df:

                        Open     High      Low    Close
2014-12-12 16:00:00  2001.00  2001.50  1999.75  2001.00
2014-12-12 16:05:00  2001.00  2001.75  2001.00  2001.25
2014-12-12 16:10:00  2001.00  2001.25  2000.00  2000.00
2014-12-12 16:15:00  2000.00  2000.50  1998.50  1999.00
2014-12-12 16:20:00  1998.75  1999.75  1998.75  1999.00
2014-12-13 16:00:00  1999.00  1999.25  1997.75  1998.75
2014-12-13 16:05:00  1998.75  1999.25  1996.75  1997.00
2014-12-13 16:10:00  1996.75  1998.75  1996.75  1998.75
2014-12-13 16:15:00  1998.75  1999.00  1998.00  1999.00
2014-12-13 16:20:00  1998.75  1999.00  1996.50  1997.50

我想把它变成这样:

注意:数字只是 df['Close'].diff() 的输出:

                     2014-12-12    2014-12-13
16:00:00 - 16:05:00     0.25         -1.75
16:05:00 - 16:10:00    -1.25          1.75
16:10:00 - 16:15:00    -1.00          0.25
16:15:00 - 16:20:00     0.00         -1.50

我想我可以暴力破解解决方案,但我想知道是否有一个很酷的技巧(可能是 Groupby)来做我需要的事情。

谢谢

【问题讨论】:

    标签: python pandas time-series dataframe


    【解决方案1】:

    您可以使用数据透视表

    df['date'] = map(lambda x: x.date(), df.index)
    df['time'] = map(lambda x: x.time(), df.index)
    
    sol = df.pivot('time', 'date', 'Close')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2014-09-29
      • 2016-01-30
      • 1970-01-01
      • 2020-02-01
      • 2016-02-01
      相关资源
      最近更新 更多