如何使用Python将德语umlauts导出到excel文件
我有以下问题,我还没有找到解决方案。 我使用的是Python2.7,我喜欢使用umlauts(“ä”、“ü”、“ü”)将Pandas系列导出到excel文件中 e、 g.对于Python 2.7:如何使用Python将德语umlauts导出到excel文件,python,python-2.7,csv,export-to-excel,export-to-csv,Python,Python 2.7,Csv,Export To Excel,Export To Csv,我有以下问题,我还没有找到解决方案。 我使用的是Python2.7,我喜欢使用umlauts(“ä”、“ü”、“ü”)将Pandas系列导出到excel文件中 e、 g.对于Python 2.7: #Python 2.7############### # -*- coding: iso-8859-15 -*- import pandas as pd import csv city = ['München', 'Nürnberg', 'Würzburg'] result = pd.Series
#Python 2.7###############
# -*- coding: iso-8859-15 -*-
import pandas as pd
import csv
city = ['München', 'Nürnberg', 'Würzburg']
result = pd.Series(city)
result.to_csv(result.to_csv('Umlauts.csv', sep= ',' , encoding='iso-8859-15')
它只适用于csv,如果我用Excel打开它,即使结果在同一行和同一列中
0,München
1,Nürnberg
2,Würzburg
问题:
将此系列框架导出为Excel工作表的解决方案是什么
A1 | A2
1 | München
2 | Nürnberg
3 | Würzburg
我是否可以将此解决方案用于创建名为“München.xls”的文件
谢谢你的帮助
BestPanad不支持方言参数。您必须使用支持excel方言的模块
免责声明
Excel与csv存在问题。使用UTF-8编码写入csv,并在文件内容前面加上utf8 bomb“\0xEF\0xBB\0xBF”
。Excel可以很好地读取此文件
然而
Excel无法使用utf8编码保存csv文件。即使打开utf8 csv并按save键而不做任何修改,excel也会在iso-8859-15
中对其重新编码,并在无法编码unicode字符的位置插入?
-s
换句话说:使用excel编辑csv文件在大多数情况下会导致数据丢失您应该覆盖
sys
设置并使用pandas.DataFrame.to_excel()
:
这应该可以工作。如前所述,您可以在导出到xls时使用另一个引擎。当其他解决方案不起作用时,这对我很有效:
pip安装XlsxWriter
导入xlsxwriter
其中,
df
是您要导出的数据帧。*OS X上的Excel可能仍然会失败…您的上一条语句似乎过于苛刻-如果您可以使用键盘在Excel中输入字符,它应该能够保存它@Mark“应该”…:)我不知道Excel在将“外来”字符导出到CSV时是否真的有问题,但在CSV中处理UTF-8时,它肯定总是有一个非常困难的关系…@MarkRansom,只要你没有俄语键盘:)我想我也能在我的匈牙利键盘上找到一个字母,比如大写字母Ű
@ALL:实际上,我喜欢避免编写csv文件。我想直接使用xlrw包将结果导出到mac excel文件中。据我所知,使用xlrw软件包(例如“u”München”)应该可以工作。但我无法解决它。有什么想法吗?谢谢你的帮助!CSV不是“Excel文件”。如果你想生成实际的.xls文件,请使用众多库中的一个(例如openpyxl)哦,他们有到_excel
。他们是对的,excel方言的csv与任何csv都相去甚远:)
# Import modules
import sys
reload(sys)
sys.setdefaultencoding('UTF8')
import pandas as pd
# Your code
city = ['München', 'Nürnberg', 'Würzburg']
result = pd.Series(city)
# Transform Series to DataFrame in order to use to_excel()
d = result.to_frame()
# Specify writer
writer = pd.ExcelWriter('output.xlsx', options={'encoding':'utf-8'})
# Write the frame to excel
d.to_excel(writer,'Sheet1')
# Save the file
writer.save()
from pandas import ExcelWriter
writer = pd.ExcelWriter('file.xlsx', engine='xlsxwriter')
df.to_excel(writer,'Sheet1')
writer.save()