在python中将字符串转换为浮点(并删除小数点)

在python中将字符串转换为浮点(并删除小数点),python,Python,我正在尝试创建一个函数,该函数导入一个csv文件,该文件保存每年的人口记录(作为字符串)。它导入一个文件,该文件的第3列为年份,第4列为人口计数 它应该删除小数点“.”,并显示结果填充 16122.83 16223.248 应该成为 1612283 16223248 当我尝试这样做时,我得到:在打印列表中 年份,填充=第[2]行,浮点(第[3]行)值错误:无法将字符串转换为浮点:POP。 这是我的代码: import csv file = csv.reader(open(filename))

我正在尝试创建一个函数,该函数导入一个csv文件,该文件保存每年的人口记录(作为字符串)。它导入一个文件,该文件的第3列为年份,第4列为人口计数

它应该删除小数点“.”,并显示结果填充

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'收到,我删除了我的评论。收到,我删除了我的评论。收到,我删除了我的评论。收到,我删除了我的评论。