【发布时间】:2019-04-17 06:20:46
【问题描述】:
我在 pandas 中有一个数据框,其中包含餐厅名称,但问题是一些餐厅名称包含拉丁字母,例如 Cafe 中的 é,Yauatcha Pâtisserie 中的 â 都由 pandas 以不同方式编码,例如 Yauatcha Pâtisserie 由熊猫作为
Yauatcha PÃ\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x82Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82Â\x82Ã\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x82Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82¢tisserie
有不同类型的餐厅名称包含不同的拉丁字母,由熊猫以不同的方式编码。有什么办法可以找回拉丁字母或其等效英文字母?
您可以下载数据集here。 我尝试使用 python 的 unicode 库,但这似乎不起作用。 这是我尝试过的:
import pandas as pd
import unidecode
df = pd.read_csv(r"stod.csv", encoding='latin1')
df['name'].apply(unidecode.unidecode)
那么有什么办法可以从这个乱码中恢复拉丁字母
Yauatcha PÃ\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x82Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x83Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82Â\x82Ã\x83Â\x83Ã\x82Â\x83Ã\x83Â\x82Ã\x82Â\x82Ã\x83Â\x83Ã\x82Â\x82Ã\x83Â\x82Ã\x82¢tisserie
注意:我尝试了所有可能的解决这个问题的建议,但没有一个对我有用。
【问题讨论】:
-
你试过用
'utf-8'作为编码吗? -
是的,我这样做了,但仍然让我胡言乱语
-
我不认为那是拉丁字母。您是如何获得这些数据的?看起来就像用 BeautifulSoup 刮擦。无论哪种方式都是胡言乱语
-
数据是从zomato网站上抓取的,网站中的餐厅名称被列为Café等
-
那个数据集是垃圾。单个
â没有理由转换成这么长的字符串。
标签: python pandas unicode apply latin