导出Pandas数据框,文本列包含utf-8文本和URL到Excel

jm81lzqq  于 2023-10-21  发布在  其他
关注(0)|答案(2)|浏览(106)

我的Pandas数据框架由推文和每个推文的Meta数据组成(300.000行)。我的一些同事需要在Excel中处理这些数据,这就是为什么我需要导出它。
我想使用Pandas提供的.to_csv.to_excel,但我不能让它正常工作。
当我使用.to_csv时,我的问题是它在 Dataframe 的文本部分总是失败。我尝试过不同的分隔符,但文件从来没有100%对齐。文本列似乎包含制表符,管道字符等。这会混淆Excel。

df.to_csv('test.csv', sep='\t', encoding='utf-8')

当我尝试将.to_excelxlsxwriter引擎一起使用时,我遇到了一个不同的问题,那就是我的文本列包含了许多URL(我认为)。xlswriter尝试为这些URL创建特殊的可点击链接,而不仅仅是将它们作为字符串处理。我已经找到了一些关于如何规避这一点的信息,但再次,我不能让它工作。
下面的代码应该用来禁用我认为会引起麻烦的函数:

workbook = xlsxwriter.Workbook(filename, {'strings_to_urls': False})

但是,在使用to_excel时,在将数据框加载到Excel文件之前,我似乎无法调整Workbook对象的此设置。
简而言之,我如何从Pandas数据框中导出一个具有各种文本的列,以使Excel能够理解?

**编辑:**示例:

@geertwilderspvv @telegraaf ach Wilders toch, nep-voorzitter van een nep-partij met maar één lid, \nzeur niet over nep-premier of parlement!

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

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>

荷兰语翻译:
在“文件”中发现错误。以下是删除的记录列表:删除的记录:零件配方/xl/worksheets/sheet1.xml

6g8kf2rb

6g8kf2rb1#

我不认为目前可以通过Pandas API传递XlsxWriter构造函数选项,但您可以解决strings_to_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_to_urls

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

另请参阅将XlsxWriter构造函数选项传递给Pandas

2hh7jdfx

2hh7jdfx2#

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

相关问题