使用df.rename重命名无表头DataFrame列触发KeyError的技术问询
问题原因
你的DataFrame列名是整数类型的0、1、2、3、4、5,但你在rename方法里用的是字符串类型的键(比如"0"),两者类型不匹配,所以Pandas找不到对应的列,触发KeyError。
解决方案
方法1:用整数键匹配重命名
直接使用整数作为字典的键,和列名类型保持一致:
thyroidX.rename(columns={0: "Var1", 1: "Var2", 2: "Var3", 3: "Var4", 4: "Var5", 5: "Var6"}, inplace=True)
方法2:批量重命名(更高效)
如果列数较多,用列表推导式批量生成新列名,直接赋值给columns属性:
thyroidX.columns = [f"Var{i+1}" for i in range(thyroidX.shape[1])]
这样不管有多少列,都会自动生成Var1、Var2...VarN的命名。
方法3:导入时直接指定列名(从根源避免问题)
如果是用read_csv或类似方法导入文件,直接在导入阶段就指定列名,省去后续修改步骤:
import pandas as pd thyroidX = pd.read_csv("你的文件路径.csv", header=None, names=["Var1", "Var2", "Var3", "Var4", "Var5", "Var6"])
内容的提问来源于stack exchange,提问作者PracticalKat
相关产品推荐
相关产品推荐

