【问题标题】:ERROR: Expected 'Id' column to be of type 'Int32', but was 'String'错误:预期“Id”列的类型为“Int32”,但为“String”
【发布时间】:2021-07-21 06:48:13
【问题描述】:

我正在尝试为 KAGGLE 问题上传 CSV:https://www.kaggle.com/c/house-prices-advanced-regression-techniques/overview

但是当我这样做时,我得到了上述错误。我将我的 Id 列类型转换为 int32 但仍然给我带来了问题。我也试过float64。我的 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 保存的文件中一样,它会自动转换为字符串。我不知道我在解决泰坦尼克号问题时没有遇到这个问题。

【问题讨论】:

  • 总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
  • CSV 是一种天生的文本格式。 CSV 文件中的任何内容都以文本形式写入,并且必须在读取后转换回来。无论如何 - 确保您给我们一个minimal reproducible example,代码足够完整,无需添加或更改即可重现问题(但也是如上所述完成的尽可能短的东西)。
  • 所有 CSV 文件中的所有数据都只是字符串 - 程序或用户必须决定将哪些数据转换为数字。使用模块csv你必须手动转换,使用pandas它可以转换如果它识别列中的数字。
  • 您的输出看起来不像 CSV 文件中的数据 - 更像是屏幕上显示的 numpy 数组。
  • 我需要在 KAGGLE 中上传这个 CSV 预测文件,但是 kaggle 界面显示上面的错误。 @furas 它只是屏幕的输出,关于我的数据看起来如何,第一列是 ID,第二列是预测输出。

标签: python export-to-csv kaggle


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    submission_df = pd.DataFrame()
    

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

    【讨论】:

      【解决方案3】:

      转换前:

      data.dtypes
      Id           float64
      SalePrice    float64
      dtype: object
      

      转换后:

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

      会有用的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 2021-06-22
        • 2020-07-22
        • 1970-01-01
        • 2015-01-01
        • 2018-03-24
        相关资源
        最近更新 更多