You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pandas set_index()致索引值与列名异常的解决方法

处理DataFrame索引中多余的括号和逗号

问题背景

DataFrame列名出现(date,)、(outbound,)这类带括号和逗号的格式,执行df.set_index('date', inplace=True)后,索引值变成(2018-08-10,)格式,需要批量清理索引,仅保留数字和连字符组成的日期内容。

解决方案

方法1:直接清理现有索引

如果已经将date设为索引,可直接对索引执行字符串替换:

# 正则替换掉括号和逗号
df.index = df.index.str.replace(r'[(),]', '', regex=True)

方法2:正则提取日期格式内容

如果需要更精准匹配日期格式(YYYY-MM-DD),可以用正则提取:

import re
# 提取索引中符合日期格式的部分
df.index = df.index.map(lambda x: re.findall(r'\d{4}-\d{2}-\d{2}', x)[0])

方法3:从根源清理(先处理列名和date列)

先清理列名的多余符号,再处理date列内容,最后设置索引:

# 清理所有列名的括号和逗号
df.columns = df.columns.str.replace(r'[(),]', '', regex=True)
# 清理date列的多余符号
df['date'] = df['date'].str.replace(r'[(),]', '', regex=True)
# 设置date为索引
df.set_index('date', inplace=True)

内容的提问来源于stack exchange,提问作者Jenna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:25:08