您是正确的,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正确回答的那样, “您的“总体问题”的答案可能是“熊猫”,尽管有点模糊。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)