Python 使用无效字符(重音符号)将CSV文件读入数据帧

Python 使用无效字符(重音符号)将CSV文件读入数据帧,python,csv,pandas,utf-8,dataframe,Python,Csv,Pandas,Utf 8,Dataframe,我正在尝试将csv文件读入熊猫数据帧。但是,csv包含重音符号。我正在使用Python 2.7 我遇到了一个UnicodeDecodeError,因为第一列中有重音。我读过很多网站,比如,和 我使用从那里找到的答案来修改代码。最初我有: import pandas as pd #Create a dataframe with the data we are interested in df = pd.DataFrame.from_csv('MYDATA.csv') mode = lambda

我正在尝试将csv文件读入熊猫数据帧。但是,csv包含重音符号。我正在使用Python 2.7

我遇到了一个
UnicodeDecodeError
,因为第一列中有重音。我读过很多网站,比如,和

我使用从那里找到的答案来修改代码。最初我有:

import pandas as pd

#Create a dataframe with the data we are interested in
df = pd.DataFrame.from_csv('MYDATA.csv')
mode = lambda ts: ts.value_counts(sort=True).index[0]
cols = df['CompanyName'].value_counts().index
df['Calls'] = df.groupby('CompanyName')['CompanyName'].transform(pd.Series.value_counts)
例外。它起作用了,但现在将“NÍ”和“Nê”作为客户名称传递会产生错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xea in position 7: invalid continuation byte
我试着把线路改成 df=pd.read\u csv('MYDATA.csv',encoding='utf-8') 但这也会产生同样的错误

所以我根据我通过研究发现的建议尝试了这一点,但它也不起作用,我得到了同样的错误

import pandas as pd
import csv

def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs):
    csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
    for row in csv_reader:
        yield [unicode(cell, 'utf-8') for cell in row]


reader = unicode_csv_reader(open('MYDATA.csv','rU'), dialect = csv.reader)
#Create a dataframe with the data we are interested in
df =pd.DataFrame(reader)
我觉得将csv数据读入pandas数据框应该不会这么困难。有人知道更简单的方法吗

编辑:真正奇怪的是,如果删除带有重音字符的行,仍然会出现错误

UnicodeDecodeError:“utf8”编解码器无法解码位置中的字节0xd0 960:无效的连续字节


这很奇怪,因为我的测试csv有19行27列。但我希望,如果我对整个csv解码utf8,它将解决问题。

尝试将此添加到脚本顶部:

import sys  
reload(sys) 
sys.setdefaultencoding('utf8')

我知道当我们在读csv时遇到错误是很烦人的。您可以尝试此df=pd.read\u csv(文件名,sep='',错误\u错误行=False)。它可以跳过不好的行,可以节省很多时间。

请不要使用
from\u csv
它不再更新使用顶级
read\u csv
请尝试以下操作:
df=pd.read\u csv(MYDATA.csv',encoding='utf-8')
是的,我也尝试过,但是我遇到了错误“AttributeError:type对象'DataFrame'没有属性'read_csv'”如果我的行是:df=pd.DataFrame.read_csv('testing2.csv',encoding='utf-8'),否则如果有两行ra=pd.read_csv('testing2.csv',encoding='utf-8')//df DataFrame(ra),我将得到相同的UnicodeDecodeError这个错误是正确的,如果你仔细阅读我的代码,数据框就没有
read\u csv
属性,它会显示
pd.read\u csv
so
import pandas as pd df=pd.read\u csv(MYDATA.csv',encoding='utf-8')
是的,我试过了。它用df=pd.read\u csv给我同样的UnicodeDecodeError(MYDATA.csv',encoding='utf-8')问题是,您的csv文件是否以
utf-8
编码?请参阅python 2.7中的通用编码器/解码器,但您需要为该文件提供正确的编码。希望它有帮助。感谢您的输入!我收到了相同的错误,但是。哈哈,我希望这是真的,我现在正在遭受熊猫的痛苦