如何使用带有Anaconda的python3将'utf-8'写入新的CSV文件?

问题描述:

如何使用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'输入。我应该在代码中添加解码还是编码?我怎样才能解决简单但烦人的问题?

非常感谢!

你只需要指定编码:

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 ... –