【发布时间】:2013-09-23 12:32:56
【问题描述】:
针对我未能快速解决的问题的快速问题:
我正在使用 .csv 文件,但似乎找不到将字符串转换为浮点数的简单方法。这是我的代码,
import csv
def readLines():
with open('testdata.csv', 'rU') as data:
reader = csv.reader(data)
row = list(reader)
for x in row:
for y in x:
print type(float(y)),
readLines()
如你所见,它当前会打印变量 row 中 x 组列表中每个 y 元素的类型;这会产生一长串"<type 'float'>"。但这实际上并没有将每个元素更改为浮点数,也不会将 for 循环设置为执行 float(y)(类型测试为每个元素返回“字符串”)。
我也尝试了literal_eval,但也失败了。将列表元素更改为浮点数的唯一方法是使用列表解析或手动创建一个新列表,但这会丢失每个列表的原始格式(作为一个较大列表中一组元素的列表)。
我想整个问题实际上只是“使用 Python 读取、组织和合成 .csv 或 excel 格式的数据的最简单方法是什么?”
提前感谢那些有礼貌/知识渊博的人提供帮助。
【问题讨论】:
-
type 不会改变变量的类型,它只是返回变量的类型。一旦你将变量转换为浮点数,你需要就地赋值
-
也许你想要
y = float(y) -
你的“整体问题”的答案可能是“熊猫”,虽然有点模糊。
-
首先你似乎问“如何在 csv 导入时将字符串转换为浮点数”,然后你将其变形为 '我想整体问题真的只是“使用 Python 以 .csv 或 excel 格式读取、组织和合成数据的最简单方法是什么?”特别限制我们使用
import csv与使用pandas不同。本质上,内置 csv 模块已损坏,不应在任何包含一个或多个文本或分类字段的非玩具数据集上使用。使用熊猫。
标签: python string csv import floating-point