Python 从DataFrame中的DateTimeIndex获取整数索引值

Python 从DataFrame中的DateTimeIndex获取整数索引值,python,pandas,indexing,Python,Pandas,Indexing,如何从带有DateTimeIndex的DataFrame中获取基础索引数的范围?某些行已删除,因此这些值可能不是连续的 例如: dates = pd.date_range('1/1/2000', periods=8) df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D']) df Out[3]: A B C

如何从带有DateTimeIndex的DataFrame中获取基础索引数的范围?某些行已删除,因此这些值可能不是连续的

例如:

dates = pd.date_range('1/1/2000', periods=8)
df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D'])
df
Out[3]: 
                   A         B         C         D
2000-01-01  0.469112 -0.282863 -1.509059 -1.135632
2000-01-02  1.212112 -0.173215  0.119209 -1.044236
2000-01-03 -0.861849 -2.104569 -0.494929  1.071804
2000-01-04  0.721555 -0.706771 -1.039575  0.271860
2000-01-05 -0.424972  0.567020  0.276232 -1.087401
2000-01-06 -0.673690  0.113648 -1.478427  0.524988
2000-01-07  0.404705  0.577046 -1.715002 -1.039268
2000-01-08 -0.370647 -1.157892 -1.344312  0.844885
对于
df.index
我希望

DatetimeIndex(['2001-01-01', '2001-01-02', '2001-01-03' ...], dtype='datetime64[ns]', freq=None)
得到

[1, 2, 4, ...,26, etc]
在不包含df.reset_index()的wat中,这可能吗?

要获得此信息:

[1, 2, 4, ...,26, etc]
如果不使用
df.reset_index()
(即保持
DatetimeIndex
不变),为什么不迭代索引本身的长度范围:

range(df.index.shape[0])
要直接获取列表,您可以使用列表理解:

您可能还需要检查,它返回特定请求的索引标签的整数位置

unique_index = pd.Index(list('abc'))
unique_index.get_loc('b')

>>> 1

所有这些都假设您将使用此
列表
,而不是直接数据帧索引。(因为这显然不适用!)

您是否考虑使用索引的日期部分(01、25、…),并且最大整数可能不大于31?否。我正在考虑对数据帧使用基础整数索引。没有基础整数索引。如果删除DatetimeIndex,Pandas将默认为设置为数据帧中行数的RangeIndex。
unique_index = pd.Index(list('abc'))
unique_index.get_loc('b')

>>> 1