【问题标题】:How to fetch timestamp in Pandas DataFrame如何在 Pandas DataFrame 中获取时间戳
【发布时间】:2014-01-17 01:34:11
【问题描述】:

我正在尝试使用 Flask 将 pandas 绘制到网络上。我认为我在正确的轨道上,但我正在努力抓住日期放在 x 轴上。

对于y轴数据,很简单:

aapl = pd.io.data.get_data_yahoo('AAPL', start=datetime.datetime(2006, 10, 1), end=datetime.datetime(2012, 1, 1))     
all_close = appl['Close'][10:]
for close in all_close:
    y.append(close)

很简单。但是似乎没有办法从返回的对象中获取日期

这是数据框的样子:

            Open   High    Low  Close    Volume  Adj Close
Date                                                       
2006-10-02  75.10  75.87  74.30  74.86  25451400      72.38
2006-10-03  74.45  74.95  73.19  74.08  28239600      71.63
2006-10-04  74.10  75.46  73.16  75.38  29610100      72.89
2006-10-05  74.53  76.16  74.13  74.83  24424400      72.35
2006-10-06  74.42  75.04  73.81  74.22  16677100      71.76

有谁知道我是怎么到那个日期的?

谢谢

【问题讨论】:

  • 日期是您在 DataFrame 中的索引。看:pandas.pydata.org/pandas-docs/dev/generated/…;简单地 df.plot() 应该为你制作情节
  • @NipunBatra 我的问题是我正在尝试使用 Flask 框架在网络服务器上运行 pandas。我无法弄清楚如何让df.plot() 打印到网络上,所以我要提取所有数据,然后用FigureFigureCanvas 绘制一个新图表
  • 我之前做过一个情节;将其保存为图形,然后将资源渲染为 Flask 上的图像;如果您认为这是可行的-我可以提供详细信息;否则你也可以使用 df.index 拉入日期
  • @NipunBatra 哦。 aapl.index[10:] 工作!想回答以便我接受?
  • 添加了一些关于 datetimeindex 的信息的答案;这可能会有所帮助

标签: python matplotlib pandas


【解决方案1】:

Date 是 DataFrame 的索引。您可以按如下方式访问它:

df.index

原版示例

In [13]: index = pd.DatetimeIndex(start='2012', end='2013', freq='1D')

In [14]: index
Out[14]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-01-17 00:00:00, ..., 2013-01-17 00:00:00]
Length: 367, Freq: D, Timezone: None


In [15]: df = pd.DataFrame(np.random.randn(len(index),1), index=index)

In [16]: df
Out[16]: 
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 367 entries, 2012-01-17 00:00:00 to 2013-01-17 00:00:00
Freq: D
Data columns (total 1 columns):
0    367  non-null values
dtypes: float64(1)

In [17]: df.index
Out[17]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-01-17 00:00:00, ..., 2013-01-17 00:00:00]
Length: 367, Freq: D, Timezone: None

这也适用于其他类型的索引。

如果您正在寻找特定的 DatetimeIndex,您可以找到有关时间序列的更多详细信息here

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 2016-10-03
    • 2022-12-10
    • 2018-10-09
    • 1970-01-01
    • 2018-10-11
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多