Python 从DataFrame中的DateTimeIndex获取整数索引值
如何从带有DateTimeIndex的DataFrame中获取基础索引数的范围?某些行已删除,因此这些值可能不是连续的 例如: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
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