在python中将字符串转换为浮点(并删除小数点)
我正在尝试创建一个函数,该函数导入一个csv文件,该文件保存每年的人口记录(作为字符串)。它导入一个文件,该文件的第3列为年份,第4列为人口计数 它应该删除小数点“.”,并显示结果填充在python中将字符串转换为浮点(并删除小数点),python,Python,我正在尝试创建一个函数,该函数导入一个csv文件,该文件保存每年的人口记录(作为字符串)。它导入一个文件,该文件的第3列为年份,第4列为人口计数 它应该删除小数点“.”,并显示结果填充 16122.83 16223.248 应该成为 1612283 16223248 当我尝试这样做时,我得到:在打印列表中 年份,填充=第[2]行,浮点(第[3]行)值错误:无法将字符串转换为浮点:POP。 这是我的代码: import csv file = csv.reader(open(filename))
16122.83
16223.248
应该成为
1612283
16223248
当我尝试这样做时,我得到:在打印列表中
年份,填充=第[2]行,浮点(第[3]行)值错误:无法将字符串转换为浮点:POP。
这是我的代码:
import csv
file = csv.reader(open(filename))
year, population = 0, 0
for row in file:
year, population = row[2], float(row[3])
print year,":", population,
要做到这一点,我认为应该首先将其转换为一个浮点,然后乘以小数点后的最大位数,然后删除末尾的所有零(因为数据的小数点位数并不相同)。但是我被困在浮点转换上。这应该可以解决问题
def decToNum(s):
return int(''.join(s.split('.')))
>>> s = '16122.83'
>>> decToNum(s)
1612283
这应该能奏效
def decToNum(s):
return int(''.join(s.split('.')))
>>> s = '16122.83'
>>> decToNum(s)
1612283
这应该能奏效
def decToNum(s):
return int(''.join(s.split('.')))
>>> s = '16122.83'
>>> decToNum(s)
1612283
这应该能奏效
def decToNum(s):
return int(''.join(s.split('.')))
>>> s = '16122.83'
>>> decToNum(s)
1612283
最直接的路线:
>>> s = '16122.83'
>>> int(s.replace('.', ''))
1612283
虽然性能在您的用例中可能不是一个大问题,
替换策略比拆分加入策略快30%左右,
基于
对于这个问题,int
似乎是您所需要的。但是对于相关的问题,使用float
而不是int
将使您处于浮点域。round(value,places)
功能也可能很方便。最直接的路线:
>>> s = '16122.83'
>>> int(s.replace('.', ''))
1612283
虽然性能在您的用例中可能不是一个大问题,
替换策略比拆分加入策略快30%左右,
基于
对于这个问题,int
似乎是您所需要的。但是对于相关的问题,使用float
而不是int
将使您处于浮点域。round(value,places)
功能也可能很方便。最直接的路线:
>>> s = '16122.83'
>>> int(s.replace('.', ''))
1612283
虽然性能在您的用例中可能不是一个大问题,
替换策略比拆分加入策略快30%左右,
基于
对于这个问题,int
似乎是您所需要的。但是对于相关的问题,使用float
而不是int
将使您处于浮点域。round(value,places)
功能也可能很方便。最直接的路线:
>>> s = '16122.83'
>>> int(s.replace('.', ''))
1612283
虽然性能在您的用例中可能不是一个大问题,
替换策略比拆分加入策略快30%左右,
基于
对于这个问题,
int
似乎是您所需要的。但是对于相关的问题,使用float
而不是int
将使您处于浮点域。round(value,places)
函数也可能很方便。这给了我:在decToNum中返回int(''.join(s.split('.'))ValueError:int()的无效文本,以10为底:“POP”这给了我:在decToNum中返回int('.join(s.split('.'))ValueError:int()的无效文本)以10为基数:'POP'这给了我:以10为基数的decToNum返回int('''.join(s.split('.')))值错误:以10为基数的int()无效文本:'POP'这给了我:以10为基数的decToNum返回int('.join(s.split('.'))值错误:以10为基数的int()无效文本:'POP'收到,我删除了我的评论。收到,我删除了我的评论。收到,我删除了我的评论。收到,我删除了我的评论。