我想用包含pd.date_range的变量切片我的pandas数据框,但它为我的数据返回Nan

时间:2016-09-04 21:02:27

标签: python pandas dataframe slice

我已经从yahoo finance加载了数据,其中包括标题日期,开放,高,低,收盘,交易量,收盘价。日期是我的数据框索引,我希望能够使用索引(日期)对这些数据进行排序。

变量month将给出我需要的日期数组,并将打印出来。问题是我得到了我的数据的Nan值。

from pandas_datareader import data as dreader
import pandas as pd

df = pd.read_csv("cde_data.csv",index_col='Date')
month = pd.date_range('2010-08-01','2016-08-01',freq='m')

print(df.ix[month.values])

这是我得到的输出(我只发布了前4行以节省空间)

            Open  High  Low  Close  Volume  Adj Close
Date
2010-08-31   NaN   NaN  NaN    NaN     NaN        NaN

2010-09-30   NaN   NaN  NaN    NaN     NaN        NaN

2010-10-31   NaN   NaN  NaN    NaN     NaN        NaN

2010-11-30   NaN   NaN  NaN    NaN     NaN        NaN

这是df.head()

              Open    High     Low   Close  Volume   Adj Close
Date
1990-04-12  26.875  26.875  26.625  26.625    6100  250.576036
1990-04-16  26.500  26.750  26.375  26.750     500  251.752449
1990-04-17  26.750  26.875  26.750  26.875    2300  252.928863
1990-04-18  26.875  26.875  26.500  26.625    3500  250.576036
1990-04-19  26.500  26.750  26.500  26.750     700  251.752449

按任意键继续。 。

1 个答案:

答案 0 :(得分:0)

您的索引不是datetime类型,而是object。在使用之前转换它:

df = df.reset_index()
df.Date = pd.to_datetime(df.Date)
df = df.set_index('Date')