非常感谢社区的帮助,在大家的指导下,我们已经成功识别到问题出在数字格式上。首先,我们通过以下命令验证了列中不存在null/NaN或其他非数字内容:
print(df['DBP_AUS'].dtype)
print(df['DBP_AUS'].isnull().sum())
输出结果如下:
Object
0
这表明列的数据类型为“对象”,但没有缺失值。
接下来,我们将列转换为浮点数类型,添加了.astype(float)
:
df['COST_AUS'] = df['DBP_AUS'].astype(float).multiply(1.1)
这时出现了新的错误:
ValueError: could not convert string to float: '1,153.00'
这个错误揭示了'1,153.00'这样的字符串无法转换为浮点数,这是因为该列中的数字包含了千分位分隔符。
为了解决这个问题,我们在读取CSV文件时指定了千分位分隔符:
df = pd.read_csv('source', thousands=',')