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

Python中语法正确但列重命名失效问题求助

解决pandas无法重命名dteday列的问题

问题原因

你在读取CSV时,通过index_col="dteday"把dteday设置成了DataFrame的索引列,而非普通数据列。rename(columns=...)方法仅能修改普通列的名称,对索引列无效,这就是cnt(普通列)能成功改名为y,但dteday(索引列)无法通过该方式改成ds的原因。

解决方案

提供两种可行的处理方式:

方式一:读取时不设索引,先重命名再设索引

这种方式更直观,先将dteday当作普通列处理,重命名后再设置为索引:

import pandas as pd
import numpy as np
# 读取文件时不指定index_col,保留dteday为普通列
data = pd.read_csv("Daily Bike Sharing.csv", parse_dates=True)
# 选择需要的列,记得包含dteday
dataset = data.loc[:,["dteday","cnt","holiday","workingday","weathersit",
                      "temp","atemp","hum","windspeed"]]
# 一次性重命名目标列
dataset = dataset.rename(columns={'cnt': 'y', 'dteday': 'ds'})
# 如果需要将ds设为索引,执行此步骤
dataset = dataset.set_index('ds')
dataset.head(1)

方式二:直接修改索引名称

如果需要保留读取时设置索引的逻辑,可以直接修改索引的名称,而非用列重命名的方法:

import pandas as pd
import numpy as np
data = pd.read_csv("Daily Bike Sharing.csv",
                   index_col="dteday",
                   parse_dates=True)
dataset = data.loc[:,["cnt","holiday","workingday","weathersit",
                      "temp","atemp","hum","windspeed"]]
dataset = dataset.rename(columns={'cnt': 'y'})
# 方法1:用rename的index参数修改索引名
dataset = dataset.rename(index={'dteday': 'ds'})
# 方法2:直接修改index.name属性,更简洁
# dataset.index.name = 'ds'
dataset.head(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:30:47