在python中将csv或txt文件中的带两个逗号的字符串数据值转换为float



我刚刚收到HPLC运行的数据集,我遇到的问题是,来自软件的文本数据生成两个点分隔值,例如"31.456.234分钟"。因为我想用matplotlib和numpy绘制数据,所以我只能看到值没有用两个逗号列出的数据。这是因为每个小于1的值都用一个逗号表示,比如"0.765298"如前所述,其余的值用两个逗号列出。我试图用。split()和。find()方法来解决这个问题,然而,这是相当不方便的,我想知道是否会有一个更优雅的方法来解决这个问题,因为我最终需要x和y值来绘制。

非常感谢任何帮助提前回答。

关于逗号和点,这不是很清楚。对于十进制数,你说你有逗号,但你显示一个点:0.765298

我猜你不能用点来表示千位分隔符和小数…

如果你有英文符号,我猜数字是:"31456234 min"one_answers"0.765298">

在这种情况下,您可以使用replace方法:

output = "31,456,234"
number = float(output.replace(',',''))
# result : 31456234.0

编辑

不太清楚你要找的是什么以及数字的格式…

但是,如果不需要31.456.234中的第二个逗号,这里有一个解决方案:

def conv(n):
i = n.find('.')
return float(n[:i]+'.'+n[i:].replace('.',''))
x = '31.456.234'
y = '0.765298'
print(conv(x)) # 31.456234
print(conv(y)) # 0.765298

最新更新