【问题标题】:How to read files (with special characters) with Pandas?如何使用 Pandas 读取文件(带有特殊字符)?
【发布时间】:2020-02-13 13:27:48
【问题描述】:

我有一个(编码/解码)问题。

虽然我使用“utf-8”将文件读入DataFrame,代码如下所示,但输出中的字符看起来非常不同。语言是法语。如果您能对此提供帮助,我将非常高兴,在此先感谢您。

检查的第一行数据

b"Sur la #route des station ou de la maison\xf0\x9f\x9a\x98\xe2\x9d\x84\xef\xb8\x8f?\nCet apr\xc3\xa8s-midi, les #gendarmes veilleront sur vous, comme dans l'#Yonne, o\xc3\xb9 les exc\xc3\xa8s de #vitesse & les comportements dangerouseux des users de l'#A6 seront verbis\xc3\xa9s\xe2\x9a\xa0\xef\ xb8\x8f\nAlors 谨慎,\xc3\xa9quipez-vous & n'oubliez-pas la r\xc3\xa8gle des 3\xf0\x9f\x85\xbf\xef\xb8\x8f !”

import pandas as pd
data = pd.read_csv('C:\\Users\\Lenovo\\Desktop\\gendarmerie_tweets.csv', delimiter=";", encoding="utf-8")
data.head()

输出:

    text
0   b"Sur la #route des stations ou de la maison\x...
1   b"#Guyane Soutien \xc3\xa0 nos 10 #gendarmes e...
2   b'#CoupDeCoeur \xf0\x9f\x92\x99 Journ\xc3\xa9e...
3   b'RT @servicepublicfr: \xf0\x9f\x97\xb3\xef\xb...
4   b"\xe2\x9c\x85 7 personnes interpell\xc3\xa9es...

【问题讨论】:

  • 能否显示给出该输出的 csv 文件的第一行?
  • 在加载数据之前使用chardet 之类的工具来识别数据的真实编码。
  • 非常好的工具 Sergey,不知道。

标签: python python-3.x pandas dataframe


【解决方案1】:

我相信对于这种情况,您可以尝试使用不同的encoding。我相信可以帮助你解决这个问题的解码参数是'ISO-8859-1'

data = pd.read_csv('C:\\Users\\Lenovo\\Desktop\\gendarmerie_tweets.csv', delimiter=";", encoding='iso-8859-1')

编辑:

给定读取文件的输出:

<_io.TextIOWrapper name='C:\\Users\\Lenovo\\Desktop\\gendarmerie_tweets.csv' mode='r' encoding='cp1254'>

来自 python 的 codec cp1254 别名 windows-1254 是土耳其语,所以我建议尝试 latin5windows-1254,但这些选项似乎都没有帮助。

【讨论】:

  • 我经常使用 latin1,但输出明确包含一些 utf-8 编码字节。如果在 OP 的代码中将 utf8 更改为 latin1 会解决任何问题,我会感到惊讶......
  • ISO-8859-15 在标准 latin1 utf8 没有帮助的地方帮助我
  • 我相信 ISO-8859-15 可能是关键。
  • 首先感谢您的回答,但是“latin1”和“ISO 8859-1”给出了相同的输出。
  • 您尝试过 ISO-8859-15 吗?还有chardet给了你什么?
猜你喜欢
  • 1970-01-01
  • 2020-01-18
  • 2012-05-28
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多