我已经将 csv 文件读入 python 2.7(windows 机器)。销售价格列似乎是字符串和 float 的混合体。有些行包含欧元符号 €。 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 评论是有效的。首先,您需要使用编码读取文件(请参阅编码部分下的 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html)
df=pd.read_csv('sales.csv', thousands=',', encoding='utf-8')
但要替换欧元符号,请尝试以下操作:
df=df.replace('\u20AC','',regex=True).astype(float)
关于 Pandas 数据帧 : remove � (unknown-character) from strings in rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45077507/