为什么我所有的变量在上传时都是对象而不是数值(int,float)?

Why are all my variables objects instead of numerical values (int,float) when uploaded?

我刚开始,所以这可能很愚蠢,但我有以下问题: 我为一些基本数据描述创建了一个 .csv 文件。但是,尽管在使用 df.dtyped() 时它们都是没有任何缺失值的数值,但我收到所有变量作为对象,只有一些是 int64 或 float64。我是否必须使用代码手动将所有对象变量转换为数字变量? 还是我在创建 csv 时做错了什么?

另外,我以 yyyy-mm-dd 格式保存的日期显示为对象而不是日期格式。

一些变量的数据数量范围为[0,2],而另一些则为[0,2000000]。 Excel 中的格式是否有问题?

是否有任何“如何构建您的 csv”文档?这样我就不必问像这样愚蠢的初学者问题了?

此外,我被告知要使模型正常工作,我需要对数据进行一些 Scaling/Normalization 处理,因为值范围差异很大。我在哪里可以找到更多相关信息?

pd.read_csv 已经有指定类型的选项,因此如果您需要,可以指定 dtypeType with read_csv。对于日期,您始终必须将格式更改为 datetime

缩放或规范化您的日期将取决于您还将使用哪种机器学习模型。 例如:如果使用随机森林和 KNN,KNN 将需要具有缩放功能,因为它适用于距离。

Hands-On 使用 Scikit-Learn、Keras 和 Tensorflow 进行机器学习:构建智能系统的概念、工具和技术 是一本很好的入门书我个人认为

我建议您在保存 CSV 文件之前先进行数据类型转换。您也可以使用以下函数进行转换。

astype()

to_numeric()

convert_dtypes()

您可以使用随附的 link 获取缩放信息。 https://www.analyticsvidhya.com/blog/2020/07/types-of-feature-transformation-and-scaling/

谢谢你的想法。 最后 pd.readcsv(title, decimal:',') 帮助将它们创建为浮点数。因为我使用了德语格式。

但使用 to_numeric() 的转换也有效