2017-08-08 118 views
-1

如何使用python3和Anaconda將'utf-8'寫入一個新的CSV文件?如何使用帶有Anaconda的python3將'utf-8'寫入新的CSV文件?

我是一名新的Python和熊貓學習者。我使用的版本是python3。我使用Anaconda平臺運行它,這是一個類似於PyCharm IDE的IDE。

我有兩個數組來記錄長文本中的所有單詞和它們的頻率。所有的字保存在字符串的形式,其中包括「UTF-8」字:

value = [13, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 

key = ['-', 'Span', 'Found', 'Not', '404.0', '詳細', '8.5', 'IIS', 'Details', '錯誤', 'Machine,', 'K', 'Ltd.', 'Co.,', 'Contact', 'Group', 'Large', 'qinwomachine', 'Trading', 'Qinwo', 'Shanghai', 'Manufacturer', 'Machine', 'Super', 'Abm240', 'Abm120', 'Mic240', 'Mic120', 'Forming', 'Roll', 'wubianstar', 'Electrical', 'Hont', 'China', 'tileformer', '\ufeffContact'] 

現在我試圖寫那些價值和按鍵陣列使用python3與蟒蛇叫split_word.csv一個新的CSV文件。我的代碼如下:

# read the arrays as dataframe, also set the column name 'word' and 'frequency' 
df = pd.DataFrame({"word" : newkey, "frequency" : newvalue}) 

# write dataframe into a new csv file 
df.to_csv("split_word.csv", index=False) 

我在CSV預期的結果是兩個新列:

frequency word 
13   - 
4   Span 
3   Found 
3   Not 
3   404 
3   詳細 
3   8.5 
3   IIS 
3   Details 
2   錯誤 
2   Machine, 
2   K 
2   Ltd. 
2   Co., 
2   Contact 

但是有一些錯誤的實際結果。 '詳細'和'錯誤'缺失:

frequency word 
13   - 
4   Span 
3   Found 
3   Not 
3   404 
3   ???? 
3   8.5 
3   IIS 
3   Details 
2   ???? 
2   Machine, 
2   K 
2   Ltd. 
2   Co., 
2   Contact 

所以唯一的問題是'utf-8'輸入。我應該在代碼中添加解碼還是編碼?我怎樣才能解決簡單但煩人的問題?

非常感謝!

回答

1

你只需要指定編碼:

df.to_csv("split_word.csv", index=False, encoding="utf-8") 
+0

謝謝,我嘗試,但它不工作。 –

+0

@HavenShi我不知道還有什麼可以做的,對不起。我在我的系統上測試過,它解決了這個問題。 Python 3.6,Anaconda,Windows 7,並在記事本++中查看CSV – jacoblaw

+0

emmmm,看來我無能爲力。雖然我也測試了Python 3.6,Anaconda ... –