Python 如何在对CSV列求和时替换空格
我正在尝试构建一个python脚本,该脚本将对 列的一个大的csv文件,并给我的输出。我能算出 包含以下脚本的列:Python 如何在对CSV列求和时替换空格,python,csv,Python,Csv,我正在尝试构建一个python脚本,该脚本将对 列的一个大的csv文件,并给我的输出。我能算出 包含以下脚本的列: port csv with open("o77069894.out","r+",encoding='utf8') as fin: headerline = fin.readline() amount = 0 debit = 0 value = 0 for row in csv.reader(fin,delimiter=","): value = float(row[17
port csv with open("o77069894.out","r+",encoding='utf8') as fin:
headerline = fin.readline()
amount = 0
debit = 0
value = 0
for row in csv.reader(fin,delimiter=","):
value = float(row[17]) if value else 0.0
debit+=value
print (debit)
但是,当我使用csv列测试时,遇到了一个错误,该列的数字类似于“12.4空格”(该字段有空格)。因此,我尝试在for循环中使用:value=row[17].strip(),但引发了一个错误:
回溯(最后一次调用):文件“sum\u csv1\u v3\u modified.py”,
第8行,在
对于csv.reader(fin,delimiter=“|”)中的行:文件“C:\ProgramData\Anaconda3\lib\codecs.py”,第321行,在解码中
(结果,消耗)=self.\u buffer\u decode(数据,self.errors,final)UnicodeDecodeError:“utf-8”编解码器无法在适当位置解码字节0xbf
3213:无效id开始字节
我将无法显示真实的数据,因为它是保密的,但我认为,由于代码是为其他csv文件工作的问题可能是由于空白。即使这是一个文件问题,我想知道如何处理这些领域。
另外,我想知道如何编辑代码以替换数字中的“,”或“$”。谢谢。看起来“12.4空格”是一个字符串。请尝试str.replace()
您可以试试这个,因为可能存在一些非ascii字符
row[17].encode('utf-8').strip()
A会有帮助的。在本例中,一些示例数据表明您的问题非常理想。您知道如何替换数字之间的逗号吗?例如:12000.93
float(a.replace(',','')
row[17].encode('utf-8').strip()