簡體   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