我尝试了几种从{$ 95,800.50]的值列中删除$
的方法。
我想在一列工资上调用min
和max
但首先我必须将其解析为浮点数但由于$
而无法解析。
import csv
f = open("Employee_Salaries_-_2014.csv")
rows = csv.reader(f)
next(rows)
class employeeInfo:
gender = ""
salary = 0
title = ""
employee = []
for col in rows:
e = employeeInfo()
e.gender = col[1]
e.salary = col[2]
e.title = col[9]
employee.append(e)
答案 0 :(得分:2)
使用.lstrip("$")
去除" $"从前面。这可以避免在没有" $"的情况下为您的代码提供薪水的情况下删除第一个字符。在前面"
例如:
e.salary = col[2].lstrip("$")
顺便说一句,考虑将你的工资存储在int(以美分为单位而不是以美元为单位),因为浮点数不准确,例如0.1 + 0.2!= 0.3。或者您可以使用内置在decimal库中的python代替。
答案 1 :(得分:1)
您可能没有意识到这一点,但是当转换为其中一种数字类型时,python不允许在字符串中使用逗号。
如果数据是字符串,则可以使用translate
。如果它是unicode,IIRC可能会有一些边缘情况,replace
是更好的选择
e.salary = col[2].translate(None, '$,')
e.salary = col[2].replace('$', '').replace(',','')
上面使用col[2].lstrip('$')
的建议很好但是你需要在将它转换为浮动之前替换工资中的,
。
e.salary = col[2].lstrip('$').replace(',','')
答案 2 :(得分:0)
您可以尝试:
e.salary = col[2][1:]