Pandas 熊猫数据帧:删除;(未知字符)来自行中的字符串
我已将csv文件读入python 2.7(windows机器)。销售价格栏似乎是字符串和浮动的混合体。有些行包含欧元符号€。Python将欧元视为�.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
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')