错误:“Id”列应为“Int32”类型,但为“String”

2024-06-12 01:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图上传一个KAGGLE问题的CSV:https://www.kaggle.com/c/house-prices-advanced-regression-techniques/overview

但是当我这样做的时候,我得到了上面的错误。我将Id列键入int32,但它仍然给我带来了问题。我也试过了。我的Id列中没有任何科学值

我该怎么办? 用于写入的命令:

Final_DataFrame = pd.DataFrame(Result,columns = ['Id','SalePrice'])

FinalDataFrame.tocsv("D:/Study Material/Py_Programs/Kaggle/House Prices Advanced Regression Techniques/Prediction.csv",index = False)

Sample Output :

[[ 1463. 201899.30306688]

[ 1464. 196082.34616396]

[ 1465. 219045.36294988]]

就像在CSV保存的文件中,它会自动转换为字符串。我不知道我在解决泰坦尼克号问题时没有遇到这个问题


Tags: csvhttpscomiddataframewwwoverviewadvanced
3条回答

您可以尝试使用字典,其中已使用range()生成索引列:

keys = range(1461, 1461 + len(predictions))
df_subm = pd.DataFrame({'Id': keys, 'SalePrice': predictions})
df_subm.to_csv('test_results.csv', index=False)

如果在“结果加载”部分将id转换为int32,问题就解决了

submission_df = pd.DataFrame()

这里:submission_df['Id'] = test_df["Id"].astype("Int32")

转换前:

data.dtypes
Id           float64
SalePrice    float64
dtype: object

转换后:

data["Id"] = data["Id"].astype(int)
Id             int32
SalePrice    float64
dtype: object

它会起作用的

相关问题 更多 >