【问题标题】:Python: How to remove comma number separator in numbers from imported csv filePython:如何从导入的 csv 文件中删除数字中的逗号分隔符
【发布时间】:2021-12-22 11:37:03
【问题描述】:

我已经导入了一个 csv 文件作为字典,它是这样的

dict1 = {'key1': ['0', '0', '100'], 'key2': ['0', '0', '2,000']}

我现在需要将字典值转换为整数以便执行一些计算

dict1_int = dict((key, [int(element) for element in value]) for key, value in dict1.items())

似乎“2,000”等数字中的数字分隔符逗号阻止了整数转换。我怎样才能删除那种逗号,而不是分隔值元素的逗号?我被香草蟒困住了,所以不能使用熊猫之类的东西。提前谢谢!

编辑:如何导入 csv 文件

with open('file.csv') as file: 
  reader = csv.reader(file) 
  next(reader, None) 
  for rows in reader: 
    data = [rows[1], rows[2], rows[3]] 
    dict1[rows[0]] = data 

【问题讨论】:

  • 你是怎么导入的?只要您知道哪些列应该是整数,只需在这些字段上执行f.replace(',','')
  • 这就是我导入它的方式:``` with open('file.csv') as file: reader = csv.reader(file) next(reader, None) for rows in reader: data = [rows[1], rows[2], rows[3]] dict1[rows[0]] = data ``` 我需要从所有列的值中删除逗号。我正在搞乱 file.replace 但不确定它如何与字典一起使用。如果您有更好的方法来导入文件并执行此操作,我会全力以赴
  • Edit 您的问题包括您的导入代码。注释不能正确显示多行代码,尤其是。用于 Python。
  • 谢谢,我会编辑的,上次评论后不得不离开所以无法查看它

标签: python csv type-conversion


【解决方案1】:
dict1 = {'key1': ['0', '0', '100'], 'key2': ['0', '0', '2,000']}

dict1_int = dict((key, [int(str(element).replace(',', '')) for element in value]) for key, value in dict1.items())

print(dict1_int)

回答: {'key1': [0, 0, 100], 'key2': [0, 0, 2000]}

【讨论】:

  • 感谢您的帮助。如果你不介意我用语言来更好地理解它,你的代码将每个元素转换为字符串,然后将','替换为'',然后将其转换为整数,对吗?
【解决方案2】:

如果所有非键列都是整数,那很简单,你不妨同时转换为整数:

with open('file.csv') as file:
    reader = csv.reader(file)
    next(reader, None)
    for rows in reader:
        data = [int(r.replace(',','')) for r in rows[1:]]
        dict1[rows[0]] = data

【讨论】:

  • 我很感激,您还向我展示了 [1:] 可以引用从索引 1 开始的所有元素,谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-10
  • 1970-01-01
  • 2019-02-12
  • 2016-12-08
相关资源
最近更新 更多