Python 将包含utf-8文本和URL的文本列的熊猫数据框导出到Excel

Python 将包含utf-8文本和URL的文本列的熊猫数据框导出到Excel,python,excel,pandas,export-to-excel,export-to-csv,Python,Excel,Pandas,Export To Excel,Export To Csv,“我的熊猫”数据框包含每条推文的推文和元数据(300.000行)。我的一些同事需要在Excel中处理这些数据,这就是我需要导出这些数据的原因 我想使用Pandas提供的.to_csv或.to_excel,但我无法让它正常工作 当我使用.to_csv时,我的问题是它在数据框的文本部分不断失败。我使用过不同的分隔符,但文件从未100%对齐。文本列似乎包含制表符、管道字符等,这会混淆Excel df.to_csv('test.csv', sep='\t', encoding='utf-8') 当我尝

“我的熊猫”数据框包含每条推文的推文和元数据(300.000行)。我的一些同事需要在Excel中处理这些数据,这就是我需要导出这些数据的原因

我想使用Pandas提供的
.to_csv
.to_excel
,但我无法让它正常工作

当我使用
.to_csv
时,我的问题是它在数据框的文本部分不断失败。我使用过不同的分隔符,但文件从未100%对齐。文本列似乎包含制表符、管道字符等,这会混淆Excel

df.to_csv('test.csv', sep='\t', encoding='utf-8')
当我尝试将
.to_excel
xlsxwriter
引擎一起使用时,我遇到了一个不同的问题,那就是我的文本列包含许多URL(我想)
xlswriter
尝试为这些URL创建特殊的可点击链接,而不是将它们作为字符串处理。我已经找到了一些关于如何避免这种情况的信息,但是,同样,我无法让它发挥作用

应使用以下代码位禁用我认为引起故障的功能:

workbook = xlsxwriter.Workbook(filename, {'strings_to_urls': False})
但是,在将数据框加载到excel文件之前,使用
创建excel
时,我似乎无法调整工作簿对象的此设置

简言之,如何将一个包含各种文本的列从Pandas数据框导出到Excel能够理解的内容

编辑: 例如:

所以在这种情况下,很明显,这是一个线路制动器,这是我的数据。我将尝试找到更多的例子

edit2:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error047600_01.xml</logFileName><summary>Er zijn fouten aangetroffen in bestand C:\Users\Guy Mahieu\Desktop\Vu ipython notebook\pandas_simple.xlsx</summary><removedRecords summary="Hier volgt een lijst van verwijderde records:"><removedRecord>Verwijderde records: Formule van het onderdeel /xl/worksheets/sheet1.xml</removedRecord></removedRecords></recoveryLog>

错误047600_01.xmlEr zijn fouten aangetroffen in Best和C:\Users\Guy Mahieu\Desktop\Vu ipython notebook\pandas_simple.xlsxVerwijderde记录:Formule van het Onderdel/xl/worksheets/sheet1.xml
荷兰语翻译:


在“文件”中发现错误。以下是已删除记录列表:已删除记录:零件公式/xl/worksheets/sheet1.xml

我认为目前不可能通过Pandas API传递XlsxWriter构造函数选项,但您可以解决
字符串到\u url
的问题,如下所示:

import pandas as pd

df = pd.DataFrame({'Data': ['http://python.org']})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')

# Don't convert url-like strings to urls.
writer.book.strings_to_urls = False

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Close the Pandas Excel writer and output the Excel file.
writer.save()
更新:在Pandas的最新版本中,您可以将XlsxWriter构造函数选项直接传递给
ExcelWriter()
,而无需将
writer.book.strings\u设置为\u URL
间接:

writer = pd.ExcelWriter('pandas_simple.xlsx', 
                        engine='xlsxwriter', 
                        options={'strings_to_urls': False})

你能给我们一个不起作用的df的例子吗?@JamesTobin我已经添加了一个例子,如果需要的话我会添加更多。代码可以工作,所以这是一个很好的开始。打开Excel文件时,会收到一条警告,提示需要恢复该文件。为了更好地格式化,我将日志文件放在了我的帖子中。当你打开我的示例创建的文件时,你会得到一个警告?是的,这就是我的意思。当我打开文件时,我没有看到任何警告,而且对于这样一个简单的测试用例,真的没有任何理由。另外,关于您在上面添加的警告,
/xl/worksheets/sheet1.xml
中没有任何“公式”部分。您是否向示例中的数据框添加了公式或其他数据?可能数据框中有一些数据被解释为公式。尝试在与另一个选项相同的位置添加以下内容,以查看是否有差异:
writer.book.strings\u to\u formulas=False
writer = pd.ExcelWriter('pandas_simple.xlsx', 
                        engine='xlsxwriter', 
                        options={'strings_to_urls': False})
 writer = pd.ExcelWriter(report_file, engine='xlsxwriter', options={'strings_to_urls': False,
                                                                       'strings_to_formulas': False})