当前位置: 首页 > 面试题库 >

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

罗浩然
2023-03-14
问题内容

我的熊猫数据框包含推文和每个推文(300.000行)的元数据。我的一些同事需要在Excel中使用此数据,这就是为什么我需要导出它的原因。

我想使用熊猫提供的一个.to_csv.to_excel两个,但我无法使其正常工作。

当我使用.to_csv我的问题时,它一直在数据框的文本部分中失败。我玩过不同的分隔符,但文件从未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!

因此,在这种情况下,显然是行车制动器是我的数据。我将尝试查找更多示例。

编辑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按照以下方法解决此问题:

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间接设置:

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


 类似资料:
  • 这是我导出查询的VBA代码: docmd.transfertext acExportDelim,“miniFlow”,“qry01_cz_test”,“c:\test_cz.txt”,“no docmd.transfertext acExportDelim,”miniFlow“,”qry01_sk_test“,”c:\test_sk.txt“,”no 我还试图修改它,添加65001作为编码参数,结

  • 问题内容: 为什么sql数据库使用UTF-8编码?他们都使用8位来存储字符吗? 问题答案: UTF-8用于支持大范围的字符。在UTF-8中,最多可以使用4个字节来表示单个字符。 乔尔(Joel)撰写了一篇有关该主题的文章,您可能希望参考 每个软件开发人员绝对,肯定必须了解的Unicode和字符集的绝对最低要求(无借口!)

  • 问题内容: 我在Python中使用熊猫有数据框。其中两列分别命名为和。我想创建一个名为 的变量。 问题答案: 如果两个列都是字符串,则可以直接将它们连接起来: 如果其中一列(或两列)都不是字符串类型,则应首先将其转换为字符串, 这样做时要小心! 如果需要连接多个字符串列,可以使用: 其中是分隔符。

  • 问题内容: 我有一个很大的CSV文件,准备将其加载到MySQL表中。但是,这些数据被编码为utf-8格式,因为它们包含一些非英语字符。我已经将表中相应列的字符集设置为utf-8。但是当我加载文件时。非英语字符变成怪异字符(当我对表行进行选择时)。将数据加载到表中之前是否需要对数据进行编码?如果是,我该怎么做。我正在使用Python加载数据,并使用LOAD DATA LOCAL INFILE命令。谢

  • 有谁能帮上忙吗?

  • 问题内容: 我想知道是否有一种方法可以从HTML的文本框中获取内容,将其输入flask,然后使用Python解析该数据。我以为这可能涉及一些JS,但我可能是错的。有任何想法吗? 问题答案: 除非你想做更复杂的事情,否则将数据从HTML表单输入Flask非常简单。 创建一个接受POST请求()的视图。 访问字典中的表单元素。