如何使用带有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")
谢谢,我尝试,但它不工作。 –
@HavenShi我不知道还有什么可以做的,对不起。我在我的系统上测试过,它解决了这个问题。 Python 3.6,Anaconda,Windows 7,并在记事本++中查看CSV – jacoblaw
emmmm,看来我无能为力。虽然我也测试了Python 3.6,Anaconda ... –