繁体   English   中英

改变<class 'pandas.core.indexes.base.index'>至<class 'pandas.core.indexes.datetimes.datetimeindex'></class></class>

[英]Change <class 'pandas.core.indexes.base.Index'> to <class 'pandas.core.indexes.datetimes.DatetimeIndex'>

我有

df = pd.read_csv("C:AAPL_MIN.csv", parse_dates=True, index_col='datetime')
print(type(df.index))

如何将类型从 <class 'pandas.core.indexes.base.Index'> 更改为 <class 'pandas.core.indexes.datetimes.DatetimeIndex'>

日期时间为 2020-09-14 09:30:00-04:00

编辑:

这是带有输出的更新代码

import pandas as pd    
    
df = pd.read_csv("file",header=0)

df['datetime'] = pd.to_datetime(df['datetime'])

print(type(df['datetime'][0]))
#class 'datetime.datetime'

print(type(df['datetime']))
#class 'pandas.core.series.Series'

df.set_index('datetime', inplace=True, drop=True)

print(type(df.index))
#class 'pandas.core.indexes.base.Index'
                             open     high      low    close   volume
datetime                                                              
2020-10-06 09:30:00-04:00  13.2800  13.3500  13.2300  13.2501  1060985
2020-10-06 09:31:00-04:00  13.2600  13.2600  13.1900  13.2150   377251
2020-10-06 09:32:00-04:00  13.2110  13.2299  13.1922  13.2143   391055

第一个选项

只需更换

df['datetime'] = pd.to_datetime(df['datetime'])

df['datetime'] = pd.DatetimeIndex(df['datetime'])

保持所有其他代码相同。

当您使用 pd.to_datetime() 格式化列然后将其转换为索引时,就会出现问题。

第二种选择

如果您想要修改当前索引,而不是再次生成它,另一个选项是:

df.index = pd.DatetimeIndex(df.index)

第三选项

你也可以一步一步来

  1. 重置索引

df = df.reset_index()

  1. 将列转换为所需的格式

df['datetime'] = pd.DatetimeIndex(df['datetime'])

  1. 将其转换为索引

df.set_index('datetime', inplace = True, drop = True)

我有一个类似的问题,这解决了它。

我希望它会帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM