pandas 中的索引日期时间列
Indexing datetime column in pandas
我在 python 中导入了一个 csv 文件。然后,我将第一列更改为日期时间格式。
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
或
df.set_index('datetime', inplace=True)
和
df.set_index(pd.DatetimeIndex('datetime'), inplace=True)
我的问题是关于第二种和第三种方式。为什么在某些来源中他们使用 pd.DatetimeIndex()
和 df.set_index()
(如第三个代码)而第二个代码就足够了?
如果您不使用 to_datetime()
更改 'datetime' 列:
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))
结果:
pandas.core.indexes.base.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))
结果:
pandas.core.indexes.datetimes.DatetimeIndex
所以第三个 pd.DatetimeIndex()
使它成为一个实际的日期时间索引,这就是你想要的。
文档:
我在 python 中导入了一个 csv 文件。然后,我将第一列更改为日期时间格式。
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
或
df.set_index('datetime', inplace=True)
和
df.set_index(pd.DatetimeIndex('datetime'), inplace=True)
我的问题是关于第二种和第三种方式。为什么在某些来源中他们使用 pd.DatetimeIndex()
和 df.set_index()
(如第三个代码)而第二个代码就足够了?
如果您不使用 to_datetime()
更改 'datetime' 列:
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))
结果:
pandas.core.indexes.base.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))
结果:
pandas.core.indexes.datetimes.DatetimeIndex
所以第三个 pd.DatetimeIndex()
使它成为一个实际的日期时间索引,这就是你想要的。
文档: