如何将pandas中带TimeStamps索引的DataFrame索引当作普通列取值?
获取pandas中TimeStamp索引的取值方法
有几种简单直接的方式可以实现需求:
- 直接调用
df.index:这是最便捷的方式,返回的就是包含所有TimeStamp的索引对象,你可以像操作普通Series一样使用它——比如取单个时间戳df.index[0]、切片df.index[1:3],或者遍历所有索引值。 - 转换为普通列:使用
df.reset_index()方法,会把原TimeStamp索引转换成名为index的普通列,之后就能像访问常规列一样用df["index"]获取这些时间戳值了。如果不需要保留原索引结构,也可以通过df.reset_index(drop=True)直接丢弃原索引。 - 转为Series对象:如果需要将索引转为独立的Series,调用
df.index.to_series()即可得到一个结构与原索引一致的Series;要是想重置这个Series的索引,加上reset_index(drop=True)参数就行。
举个实际示例:
import pandas as pd # 构造带TimeStamp索引的DataFrame dates = pd.date_range('2023-01-01', periods=3) df = pd.DataFrame({'value': [1,2,3]}, index=dates) # 直接获取索引 print(df.index) # 转成普通列后访问 df_reset = df.reset_index() print(df_reset["index"]) # 转为Series print(df.index.to_series())
内容的提问来源于stack exchange,提问作者catasaurus
相关产品推荐
相关产品推荐

