Python 如何将Expect data.index作为DatetimeIndex处理?

Python 如何将Expect data.index作为DatetimeIndex处理?,python,python-3.x,mplfinance,Python,Python 3.x,Mplfinance,我计划从比特币数据中得到一个烛台图。 这是我加载csv文件后选择所需数据帧的代码 df['Date'] = pd.to_datetime(df['Date']) start_date = '2016-02-27' end_date = '2021-02-27' mask = (df['Date'] >= start_date) & (df['Date'] <= end_date) df = df.loc[mask] df 上面写着“TypeError:ExpectData.

我计划从比特币数据中得到一个烛台图。 这是我加载csv文件后选择所需数据帧的代码

df['Date'] = pd.to_datetime(df['Date'])
start_date = '2016-02-27'
end_date = '2021-02-27'
mask = (df['Date'] >= start_date) & (df['Date'] <= end_date)
df = df.loc[mask]
df
上面写着“TypeError:ExpectData.index作为DatetimeIndex”。 因此,我在谷歌上找到了解决方案,并尝试了以下方法:

df = dict()
df['Date'] = []
df['High'] = []
df['Low'] = []
df['Open'] = []
df['Close'] = []
df['Volume'] = []
for dict in df:
    df['Date'].append(datetime.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S')
    df['High'].append(dict['High'])
    df['Low'].append(dict['Low'])
    df['Open'].append(dict['Open'])
    df['Close'].append(dict['Close'])
    df['Volume'].append(dict['Vol'])
print("df:", df)
pdata = pd.DataFrame.from_dict(df) 
pdata.set_index('Date', inplace=True)
mpf.plot(pdata)
这一次,它说“无效语法”
我不确定我哪里弄错了,有什么我遗漏的吗?

有两种简单的方法可以确保您的数据帧有一个
熊猫。DatetimeIndex
作为数据帧索引:

  • 调用
    read_csv()
    时,指示要用于索引的列(应该是包含日期/日期时间的列),并设置kwarg
    parse_dates=True

    这将自动转换日期时间列(通常是csv文件中的字符串)将其设置为索引。您可以在mplfinance存储库中的示例中看到这一点,您可以在调用
    读取csv()


    中看到
    索引col=0,parse_dates=True

  • 使用
    pandates.DatetimeIndex()
    构造函数。例如,

    而不是您编写的内容,
    df['Date']=pd.to_datetime(df['Date'])
    您可以这样写:

  • df.index=pd.DatetimeIndex(df['Date'])
    

    作为旁注,一旦dataframe有了DatetimeIndex,您就不需要在下一段代码中使用
    掩码
    ,只需切片,如下所示:

    开始日期='2016-02-27'
    结束日期='2021-02-27'
    df=df.loc[开始日期:结束日期]
    

    df = dict()
    df['Date'] = []
    df['High'] = []
    df['Low'] = []
    df['Open'] = []
    df['Close'] = []
    df['Volume'] = []
    for dict in df:
        df['Date'].append(datetime.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S')
        df['High'].append(dict['High'])
        df['Low'].append(dict['Low'])
        df['Open'].append(dict['Open'])
        df['Close'].append(dict['Close'])
        df['Volume'].append(dict['Vol'])
    print("df:", df)
    pdata = pd.DataFrame.from_dict(df) 
    pdata.set_index('Date', inplace=True)
    mpf.plot(pdata)