繁体   English   中英

如何在熊猫数据框中显示汉字?

[英]How to display Chinese characters inside a pandas dataframe?

我可以读取一个csv文件,其中有一列包含汉字(其他列是英文和数字)。 但是,汉字不能正确显示。 见下面的照片

在此处输入图像描述

我用pd.read_csv()加载了 csv 文件。

display(data06_16)data06_16.head()都不能正确显示汉字。

我尝试将以下行添加到我的.bash_profile中:

export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

但这无济于事。

我还尝试将encoding arg 添加到pd.read_csv()

pd.read_csv('data.csv', encoding='utf_8')
pd.read_csv('data.csv', encoding='utf_16')
pd.read_csv('data.csv', encoding='utf_32')

这些根本行不通。

如何正确显示汉字?

我只是记得源数据集是使用encoding='GBK'创建encoding='GBK' ,所以我再次尝试使用

data06_16 = pd.read_csv("../data/stocks1542monthly.csv", encoding="GBK")

现在,我可以看到所有的汉字。

多谢你们!

我在这里看到三个可能的问题:

1)您可以尝试以下方法:

import codecs
x = codecs.open("testdata.csv", "r", "utf-8")

2)从理论上讲,另一种可能性是:

import pandas as pd
df = pd.DataFrame(pd.read_csv('testdata.csv',encoding='utf-8')) 

3)也许您应该在使用Python导入之前将csv文件转换为utf-8(例如在Notepad ++中)? 当然,它可以是一次性导入的解决方案,而不是自动处理的解决方案。

尝试这个

df = pd.read_csv(path, engine='python', encoding='utf-8-sig')

一个非python相关的答案。 我今天下午刚遇到这个问题,发现使用 Excel 从 CSV 导入数据可以显示很多编码名称。 我们可以在那里使用编码,看看哪一种适合我们的需要。 例如,我发现在 excel 中 gb2312 和 gb18030 都可以很好地将数据从 csv 转换为 xlsx。 但只有 gb18030 在 Python 中有效。

pd.read_csv(in_path + 'XXX.csv', encoding='gb18030')

无论如何,这不是关于如何在 Python 中导入 csv,而是寻找可用的编码来尝试。 在此处输入图像描述

你加载一个数据集,你有一些奇怪的字符。 例子:

'戴森美å 'é€\\xa0型器完整版套装Dyson Airwrap HS01(铜é‡'色礼ç›'版)'

就我而言,我知道奇怪的字符是中国人。 因此,我可以确定向我发送数据的人已将其编码为 utf-8,但应该使用“ISO-8859-1”进行编码。

所以第一步,我对字符串进行了编码,然后用 utf-8 解码。 所以我的台词是:

_encoding = 'ISO-8859-1'
_my_str.encode(_encoding, 'ignore').decode("utf-8", 'ignore')

然后我的输出是:

“‘森戴森 Airwrap HS01礼’”

这对我有用,但我想我并没有很好地理解引擎盖。 因此,如果您有更多信息,请随时告诉我。

奖金。 我会尝试检测 str 何时处于第一个奇怪的格式,因为我的一些条目是中文的,但其他的是英文的

编辑:奖金是没用的。 我只是在 ma 列上使用 lamba 进行编码和解码,而不关心格式。 所以我在加载数据框后更改了编码

_encoding = 'ISO-8859-1'
_decoding = "utf-8"
df[col] = df[col].apply(lambda x : x.encode(_encoding, 'ignore').decode(_decoding , 'ignore'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM