Как отобразить даты на оси х на графике с помощью DataFrame в пандах - PullRequest
0 голосов
/ 06 июля 2018

Я написал следующий код:

import pandas as pd     
from pandas_datareader import data as wb            
import numpy as np      
import matplotlib.pyplot as plt         
import matplotlib.dates as dates
assets= ["WMT", "FB"]  
source=pd.read_csv("C:/Users/HarshitGoyal/Downloads/Walmart_FB_2014_2017.csv", index_col="Date")     
source= (source/source.iloc[0])*100      
source.plot(figsize=(10,5))      

и получил следующий вывод (Пожалуйста, нажмите на URL ниже):

Здесь на графике отображается Дата, но не значения. Пожалуйста помоги! П.С.- Я новичок в Python.

pic

Вот ссылка на файл данных CSV.

1 Ответ

0 голосов
/ 09 июля 2018

Ключ вашего source.index типа str. Поскольку вы работаете с ценами на акции, т. Е. С данными временного ряда, то лучше всего превратить индекс в тип datetime с параметром: parse_dates=True:

>>> df = pd.read_csv('Walmart_FB_2014_2017.csv', index_col='Date', parse_dates=True)
>>> dff = df / df.iloc[0]
>>> dff.plot()

Кроме того, для простых графиков может работать только встроенная в Pandas визуализация способность.

enter image description here

Проверьте разницу dtype:

>>> source = pd.read_csv('Walmart_FB_2014_2017.csv', index_col='Date')
>>> source.index
Index(['2013-12-31', '2014-01-02', '2014-01-03', '2014-01-06', '2014-01-07',
       ...
       '2017-04-03', '2017-04-04', '2017-04-05', '2017-04-06', '2017-04-07'],
      dtype='object', name='Date', length=824)
>>> # Note the differences.
>>> df = pd.read_csv('Walmart_FB_2014_2017.csv', index_col='Date', parse_dates=True)
>>> df.index
DatetimeIndex(['2013-12-31', '2014-01-02', '2014-01-03', '2014-01-06',
               ...
               '2017-04-04', '2017-04-05', '2017-04-06', '2017-04-07'],
              dtype='datetime64[ns]', name='Date', length=824, freq=None)
...