如何使用Python将德语umlauts导出到excel文件

如何使用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

我有以下问题,我还没有找到解决方案。 我使用的是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(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”的文件

谢谢你的帮助

Best

Panad不支持方言参数。您必须使用支持excel方言的模块

免责声明 Excel与csv存在问题。使用UTF-8编码写入csv,并在文件内容前面加上utf8 bom
b“\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()