如何在pandas数据框中显示中文字符?

时间:2016-09-03 14:34:29

标签: python csv pandas encoding chinese-locale

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

enter image description here

我使用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')

这些根本不起作用。

如何正确显示汉字?

3 个答案:

答案 0 :(得分:2)

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

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

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

谢谢你们!

答案 1 :(得分:1)

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

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 ++中)?当然,它可以是一次性导入的解决方案,而不是自动过程的解决方案。

答案 2 :(得分:0)

尝试一下

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