Skip to main content
 首页 » 编程设计

python之如何在 Pandas DataFrame 中获取时间戳

2025年05月04日8kuangbin

我正在尝试使用 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 的索引。您可以按如下方式简单地访问它:

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 .