![](/img/trans.png)
[英]Chinese characters from pandas dataframe to CSV with Streamlit
[英]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')
你加載一個數據集,你有一些奇怪的字符。 例子:
'戴森美å 'é€\\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.