我的熊猫数据框包含推文和每个推文(300.000行)的元数据。我的一些同事需要在Excel中使用此数据,这就是为什么我需要导出它的原因。
我想使用熊猫提供的一个.to_csv或.to_excel两个,但我无法使其正常工作。
.to_csv
.to_excel
当我使用.to_csv我的问题时,它一直在数据框的文本部分中失败。我玩过不同的分隔符,但文件从未100%对齐。文本列似乎包含制表符,竖线字符等,这会使Excel感到困惑。
df.to_csv('test.csv', sep='\t', encoding='utf-8')
当我尝试.to_excel与xlsxwriter引擎一起使用时,我遇到了一个不同的问题,那就是我的文本列包含许多URL(我认为)。xlswriter尝试对这些URL进行特殊的可单击链接,而不仅仅是将它们作为字符串处理。我已经找到了一些有关如何避免这种情况的信息,但是,再次,我无法使其正常工作。
xlsxwriter
xlswriter
以下代码段应用于禁用我认为会引起麻烦的功能:
workbook = xlsxwriter.Workbook(filename, {'strings_to_urls': False})
但是,在使用时,在to_excel将数据框加载到Excel文件之前,似乎无法调整Workbook对象的此设置。
to_excel
简而言之,我如何将列的文本从Pandas数据框中导出到Excel可以理解的东西呢?
编辑: 例如:
@geertwilderspvv @telegraaf ach Wilders toch, nep-voorzitter van een nep-partij met maar één lid, \nzeur niet over nep-premier of parlement!
因此,在这种情况下,显然是行车制动器是我的数据。我将尝试查找更多示例。
编辑2:
<?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部分的公式
我认为目前无法通过Pandas API传递XlsxWriter构造函数选项,但是您可以strings_to_url按照以下方法解决此问题:
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中,您可以ExcelWriter()直接将XlsxWriter构造函数选项传递给,而无需writer.book.strings_to_urls间接设置:
ExcelWriter()
writer.book.strings_to_urls
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter', options={'strings_to_urls': False})