python - Python:CSV导入后如何从列表中删除$字符
问题描述
我正在尝试将 CSV 文件导入 Python。导入 CSV 后,我想获取每个 ['Spent Past 6 Months'] 值,但是 CSV 包含在该值前面的“$”符号给我带来了问题。我已经尝试了很多方法来摆脱那个符号,但我现在真的迷路了!
我对 Python 真的很陌生,所以如果这里有一些非常简单的东西我遗漏了,我深表歉意。
下面列出了我编码的内容。我的输出首先列出:
File "customer_regex2.py", line 24, in <module>
top20Cust = top20P(data)
File "customer_regex2.py", line 15, in top20P
data1 += data1 + int(a[i]['Spent Past 6 Months'])
ValueError: invalid literal for int() with base 10: '$2099.83'
import csv
import re
data = []
with open('customerData.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
data.append(row)
def top20P(a):
outputList=[]
data1=0
for i in range(0,len(a)):
data1 += data1 + int(a[i]['Spent Past 6 Months'])
top20val= int(data1*0.8)
for j in range(0,len(a)):
if data[j]['Spent Past 6 Months'] >= top20val:
outputList.append('a[j]')
return outputList
top20Cust = top20P(data)
print(outputList)
解决方案
它看起来像一个数据类型问题。
您可以像这样剥离 $ 字符:
someString = '$2099.83'
someString = someString.strip('$')
print(someString)
2099.83
现在最后一步是包装 float() 因为你有十进制值。
print(type(someString))
<class 'str'>
someFloat = float(someString)
print(type(someFloat))
<class 'float'>
希望有帮助。
推荐阅读
- events - 如何从外部触发 datalabels-plugin (active) - ChartJS
- jquery - 如何从具有数组名称的输入中获取名称和名称键
- java - 在没有生成值的情况下取回存储的数据
- azure-web-app-service - 具有不安全自定义域和前门的 Azure 应用服务
- youtube - 如何从后端上传字幕srt文件
- java - 转换为List后如何迭代方法中的元素?
- r - Remove from a string pattern using regex
- docker - ARM 架构的 Dockerfile 父级
- multithreading - 如何在不阻塞 UI 的情况下更新进度条?
- arrays - 为什么我的 For Each 循环会跳过数组中的某些项目?