我有一个包含20501行和26列的CSV文件。我想选择5列和9列数据。 这就是我所拥有的
import csv
filename = 'feed_data.csv'
f = open(filename)
readCSV = csv.reader(f, delimiter=',')
names = []
confidence_score = []
for row in readCSV:
names.append(row[8])
confidence_score.append(row[4])
这是错误
Traceback (most recent call last):
File "C:/Users/raady/PycharmProjects/feeder_Classification/test.py", line 10, in <module>
for row in readCSV:
File "C:\Users\raady\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 1009: character maps to <undefined>
如何纠正错误? 我不想用大熊猫。
是否有任何方法可以将两个列仅复制到一个变量,而不是单独复制名称和confidence_score?
编辑: 我已经安装了python 3.6和pycharm环境。我已经安装了pycharm环境中的所有软件包。
编辑2:
我通过修改f=open(filename,encoding='utf8')
尝试了建议的link,但我仍然遇到错误UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 934: invalid start byte
。
CSV文件已在utf8中编码。
编辑3: 我稍微修改了这样的代码
import csv
filename = 'feed_data.csv'
# filename = 'test.csv'
with open(filename) as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
data2 = []
for row in readCSV:
data = []
data.append(row[14]) # appending names
data.append(row[5]) # appending confidence
data2.append(data)
print(data2)
我正在添加两个文件test.py和feed_data(直接从kaggle下载)。当我尝试使用test.py它工作正常时,我可以选择所需的列数据但不能使用feed_data.py,它会给出上面提到的错误。
答案 0 :(得分:0)
从问题编辑中移除答案:
稍作修改
with open(filename, encoding='utf8', errors='ignore') as csvfile:
问题在于数据库文件,有关的信息 缺少实际编码技术。尝试了可用 借助visual studio代码检查编码格式。有些排 数据已损坏,并被上述命令忽略。