【问题标题】:time series of yahoo finance data from pandas来自 pandas 的雅虎财经数据时间序列
【发布时间】:2015-04-30 03:26:48
【问题描述】:

我有来自 yahoo 的股票价格数据保存在数据框字典 price_data 中,我想用它生成一些基本的时间序列图。

我在这里尝试过使用其他几个答案,但是我最终得到了一些混乱的结果。例如,this one 的 x 轴显示不正确。

从数据框 price_data['AAPL'] 生成 Adj Close 列的时间序列并将结果保存到 png 文件的最简洁方法是什么?

以下是有关此数据框结构的一些信息:

In [41]: type(price_data['AAPL'])
Out[41]: pandas.core.frame.DataFrame

In [42]: list(price_data['AAPL'].columns.values)
Out[42]: ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close']

In [45]: type(price_data['AAPL'].index)
Out[45]: pandas.tseries.index.DatetimeIndex

【问题讨论】:

  • 如果你只做price_data['AAPL']['Adj Close'].plot()呢?
  • 感谢@BrenBarn;我知道必须有一些简单的东西。将结果保存到 png 也很容易吗? plt.savefig('foo.png') 只是给了我一个空图像
  • 只使用savefig 对我有用。你用的是什么版本的熊猫?
  • 我已经成功了,我没有引用正确的模块。它需要 plt.pyplot.savefig(file_name)。谢谢=)
  • 你可能做了import matplotlib as plt。当人们做import matplotlib.pyplot as plt时,通常使用plt

标签: python pandas matplotlib plot


【解决方案1】:

您需要将 Date 列设置为 Timestamps 并将其设置为索引。

In [829]: temp
Out[829]: 
       Date   Open   High    Low  Close    Volume    Adj  
0  19/10/11  27.37  27.47  27.01  27.13  42880000  27.13
1  18/10/11  26.94  27.40  26.80  27.31  52487900  27.31
2  17/10/11  27.11  27.42  26.85  26.98  39433400  26.98
3  14/10/11  27.31  27.50  27.02  27.27  50947700  27.27

In [830]: temp['Date'] = pd.to_datetime(temp['Date'])

In [831]: temp
Out[831]: 
        Date   Open   High    Low  Close    Volume    Adj
0 2011-10-19  27.37  27.47  27.01  27.13  42880000  27.13
1 2011-10-18  26.94  27.40  26.80  27.31  52487900  27.31
2 2011-10-17  27.11  27.42  26.85  26.98  39433400  26.98
3 2011-10-14  27.31  27.50  27.02  27.27  50947700  27.27

而且,这将为您提供情节:

In [832]: temp.set_index('Date')['Adj'].plot()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-12
    • 2015-01-31
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多