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

Pandas处理DST数据时列名赋值引发TypeError,无法计算均值

解决Pandas分配混合类型列名的TypeError问题

错误原因

你遇到的TypeError是因为给DataFrame分配的列名列表混合了字符串('Date')和整数(1-24)类型。Pandas在处理列名时,内部操作需要统一类型,混合类型会触发字符串拼接的类型冲突错误。

修正方案

将列名统一为字符串类型,把整数1-24转换成字符串形式即可解决问题:

url_jan = "https://wdc.kugi.kyoto-u.ac.jp/dst_realtime/202401/dst2401.for.request"
data_jan = pd.read_csv(url_jan, delim_whitespace=True, header=None)

data_jan.drop(columns=[1, 26], inplace=True)
# 将1-24转为字符串,统一列名类型
columns = ['Date'] + [str(i) for i in range(1, 25)]

data_jan.columns = columns

# 计算行均值的逻辑不受列名类型影响,可直接保留
data_jan['Mean'] = data_jan.iloc[:, 1:25].mean(axis=1)
df_mean = data_jan[['Date', 'Mean']]

补充说明

如果后续需要通过数字标识列,也可以基于字符串列名做转换,比如data_jan[str(5)]就能直接索引对应列。使用iloc[:,1:25]是按位置索引,完全不受列名类型限制,所以计算均值的代码无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:40:04