Python 在pandas中索引datetime列

Python 在pandas中索引datetime列,python,indexing,datetimeindex,Python,Indexing,Datetimeindex,我用python导入了一个csv文件。然后,我将第一列更改为datetime格式 datetime Bid32 Ask32 2019-01-01 22:06:11.699 1.14587 1.14727 2019-01-01 22:06:12.634 1.14567 1.14707 2019-01-01 22:06:13.091 1.14507 1.14647 我看到了索引第一列的三种方法 df.index = df.datet

我用python导入了一个csv文件。然后,我将第一列更改为datetime格式

datetime                  Bid32    Ask32

2019-01-01 22:06:11.699  1.14587  1.14727  
2019-01-01 22:06:12.634  1.14567  1.14707  
2019-01-01 22:06:13.091  1.14507  1.14647  
我看到了索引第一列的三种方法

df.index = df.datetime
del datetime


我的问题是关于第二和第三种方法。为什么在某些源代码中,他们使用
pd.DatetimeIndex()
df.set\u index()
(类似于第三个代码),而第二个代码就足够了

如果您没有使用
将“datetime”列更改为\u datetime()

结果:
pandas.core.Index.base.Index

vs

结果:
pandas.core.index.datetimes.DatetimeIndex

因此,第三个带有
pd.DatetimeIndex()
的索引使其成为实际的datetime索引,这正是您所需要的

文件:


如果您没有使用
将“datetime”列更改为\u datetime()

结果:
pandas.core.Index.base.Index

vs

结果:
pandas.core.index.datetimes.DatetimeIndex

因此,第三个带有
pd.DatetimeIndex()
的索引使其成为实际的datetime索引,这正是您所需要的

文件:


我用你的方式检查过。使用
datetime64
列格式,第一个方法得到的结果与第二个方法相同。谢谢你用你的方式检查。使用
datetime64
列格式,第一个方法得到的结果与第二个方法相同。谢谢
df.set_index('datetime', inplace=True)
df.set_index(pd.DatetimeIndex('datetime'), inplace=True)
df = pd.DataFrame(columns=['datetime', 'Bid32', 'Ask32'])
df.loc[0] = ['2019-01-01 22:06:11.699', '1.14587', '1.14727']

df.set_index('datetime', inplace=True)  # option 2
print(type(df.index))
df = pd.DataFrame(columns=['datetime', 'Bid32', 'Ask32'])
df.loc[0] = ['2019-01-01 22:06:11.699', '1.14587', '1.14727']

df.set_index(pd.DatetimeIndex(df['datetime']), inplace=True)  # option 3
print(type(df.index))