Pandas 熊猫数据帧:删除࿽;(未知字符)来自行中的字符串

Pandas 熊猫数据帧:删除࿽;(未知字符)来自行中的字符串,pandas,encoding,non-ascii-characters,Pandas,Encoding,Non Ascii Characters,我已将csv文件读入python 2.7(windows机器)。销售价格栏似乎是字符串和浮动的混合体。有些行包含欧元符号€。Python将欧元视为�. df = pd.read_csv('sales.csv', thousands=',') print df Gender Size Color Category Sales Price Female 36-38 Blue Socks 25 Female 44-46 Pink Socks

我已将csv文件读入python 2.7(windows机器)。销售价格栏似乎是字符串和浮动的混合体。有些行包含欧元符号€。Python将欧元视为�.

df = pd.read_csv('sales.csv', thousands=',')
print df

Gender  Size    Color   Category    Sales Price
Female  36-38   Blue    Socks       25
Female  44-46   Pink    Socks       13.2
Unisex  36-38   Black   Socks      � 19.00
Unisex  40-42   Pink    Socks      � 18.50
Female  38      Yellow  Pants      � 89,00
Female  43      Black   Pants      � 89,00
我假设用一个简单的替换行就能解决这个问题

df=df.replace('\�','',regex=True).astype(float)
但我得到了编码错误

SyntaxError: Non-ASCII character

如果您能听到您对此的想法,我将不胜感激。我认为@jezrael的评论是正确的。首先,您需要使用编码读取文件(请参见“编码”部分)

但要想取代欧元,请尝试以下方法:

df=df.replace('\u20AC','',regex=True).astype(float)

我遇到了一个类似的问题,数据框中的一列有很多货币符号。欧元、美元、日元、英镑等。我尝试了多种解决方案,但最简单的是使用模块


上述内容将在
销售价格
栏中用
欧元
替换

如何工作
df=pd.read_csv('Sales.csv',数千=',',encoding='utf-8')
df=pd.read_csv('Sales.csv',数千=','编码='拉丁语')
,同样的错误尝试使用
chardet
实用程序查找编码,然后在参数中指定它。
df=df.replace('\u20AC','',regex=True).astype(float)
df['Sales Price'] = df['Sales Price'].str.replace(unicodedata.lookup('EURO SIGN'), 'Euro')