如何将DataFrame的日期索引转为列并添加常规数字索引?
将DataFrame日期索引转换为普通列并重置数字索引的实现方法
直接使用pandas内置的reset_index()方法即可完成需求,该方法会自动将当前的行索引转换为普通数据列,同时生成从0开始的连续整数型标准行索引,适配常规的for循环、if条件判断的索引使用习惯。
基础用法
# 假设你的DataFrame变量名为df df = df.reset_index()
执行上述代码后,原日期索引会成为DataFrame的普通列,行索引自动替换为0起始的数字序列。
自定义调整
- 若需要给转换后的日期列指定固定列名,pandas 1.5.0及以上版本可以直接传入
names参数:
# 转换后日期列列名设置为trade_date df = df.reset_index(names="trade_date")
- 若使用的pandas版本低于1.5.0,可以在重置索引后手动重命名列:
df = df.reset_index() df.rename(columns={"index": "trade_date"}, inplace=True)
读取阶段前置处理
如果不想每次读入数据后都做索引转换,可以在读取文件时直接关闭自动将日期列设为索引的逻辑:
# 以读取csv文件为例,解析日期列的同时不将其设置为行索引 df = pd.read_csv( "你的数据集本地路径.csv", parse_dates=["日期列对应的原始列名"], index_col=False )
操作完成后可通过print(df.head())打印前5行验证效果,此时日期列和其他普通列完全一致,可直接通过列名取值,数字索引也支持按行号直接遍历。
内容的提问来源于stack exchange,提问作者Lieke
相关产品推荐
相关产品推荐

