将字符串更改为浮点在导入的.csv中

将字符串更改为浮点在导入的.csv中,第1张

将字符串更改为浮点在导入的.csv中

您是正确的,Python的内置csv模块在处理混合数据类型时非常原始,在导入时进行所有类型转换,甚至在菜单中也有非常严格的选项,这会破坏大多数实际数据集(不一致引号和转义,布尔值和因子中的值缺失或不完整,Unipre编码不匹配,导致字段内产生幻像引号或转义字符,不完整的行将导致异常)。
修复csv导入是pandas的无数好处之一。
因此,您的最终答案确实是停止使用内置的csv导入,而开始使用熊猫。但是,让我们从问题的字面答案开始。

首先,您问 “如何在csv import上将字符串转换为浮点数” 。答案是

csv.reader(...,quoting=csv.QUOTE_NONNUMERIC)
按照csvdoc打开

csv.QUOTE_NONNUMERIC:指示阅读器将所有未引用的字段转换为float类型。

如果您可以将所有未加引号的字段(整数,浮点数,文本,布尔值等)都转换为浮点数,那么这行得通,由于许多原因,这通常是一个坏主意(布尔值中的缺失值或NA值或因数会被静默抑制)
。此外,它显然会在未引用的文本字段上失败(引发异常)。因此它很脆弱,需要使用进行保护

try..catch

然后您问: “我认为总体问题实际上是“使用Python读取,组织和合成.csv或excel格式的数据的最简单方法是什么?”
,然后打开the脚的csv.reader解决方案。

csv.reader(..., quoting=csv.QUOTE_NONNUMERIC)

但是,正如@geoffspear正确回答的那样, “您的“总体问题”的答案可能是“熊猫”,尽管有点模糊。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5662964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存