我正在尝试计算数据框中特定列的均值。列的名称在列表中。
for col in ValIndex: #ValIndex has the columns name
dataSet[col] = dataSet[col].fillna(dataSet[col].mean())
运行代码时出现此错误:
can only concatenate str (not "int") to str
答案 0 :(得分:0)
从错误中可以明显看出,您要插入的列的类型为object(str)。您需要首先将它们转换/转换为数字,以便能够计算该列(系列)的均值。
有两种方法可以根据列中的值将列转换为浮点数(或int类型):
1)如果列中肯定包含所有数字,则可以将它们转换为浮点类型,如下所示:
data[col] = data[col].astype(float)
dataSet[col] = dataSet[col].fillna(dataSet[col].mean())
OR
2)如果您的列值既可以是数字,也可以是非数字,则将它们转换为数字,如下所示:
data[col] = pd.to_numeric(data[col],errors='coerce')
dataSet[col] = dataSet[col].fillna(dataSet[col].mean())
转换后,您应该能够计算均值并推算级数。