如何用pandas数据框架打开csv文件

2024-06-11 13:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个包含三列数据帧的CSV格式文件。 第三列有很长的文本。 当我试图使用pandas.read_csv打开文件时,出现此错误消息

message : UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 0: invalid start byte.

但是打开文件时没有问题

with open('file.csv', 'r', encoding='utf-8', errors = "ignore") as csvfile:

我不知道如何将此数据转换为dataframe,而且我认为pandas.read_csv无法正确处理此错误。

那么,如何打开此文件并获取数据帧?


Tags: 文件csv数据文本消息messagepandasread
3条回答

我会尝试使用内置的csv阅读器,然后将数据放入pandas中。

import csv
with open('eggs.csv', newline='') as csvfile:
     spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
     for row in spamreader:
         print(', '.join(row))

如果这不起作用,那么至少您可以确认这是一个csv问题,而不是一个熊猫问题窒息编码。

另一个建议是确保使用的Python3.x比2.7更好地处理编码问题。

如果你能提供你的样品,我可以自己测试,并相应地更新我的答案。

试试这个:

在文本编辑器中打开cvs文件,并确保将其保存为utf-8格式。

然后正常读取文件:

import pandas
csvfile = pandas.read_csv('file.csv', encoding='utf-8')

您可以尝试另一个编码选项“ISO-8859-1”

就你而言:

with open('file.csv', 'r', encoding = 'ISO-8859-1', errors = "ignore") as csvfile:

或者试试这个:

import pandas as pd
data_file = pd.read_csv("file.csv", encoding = "ISO-8859-1")
print(data_file)

相关问题 更多 >