Python 如何将Expect data.index作为DatetimeIndex处理?
我计划从比特币数据中得到一个烛台图。 这是我加载csv文件后选择所需数据帧的代码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.
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()
时,指示要用于索引的列(应该是包含日期/日期时间的列),并设置kwargparse_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)