Python Pandas导出Excel时保留URL为纯文本的完美方案

背景

在日常数据处理中,你是否遇到过这样的困扰?😫

当你使用 pandas 的 to_excel 方法导出包含网址的数据时,pandas会“自作主张”地将这些URL转换为Excel可点击的超链接。这个看似贴心的功能,实际上却暗藏两个让人头疼的问题:

🚨 数量超标危机

  • Excel单个工作表最多只能容纳65,530个超链接

  • 一旦超过这个限制,程序就会报错,或者更糟糕——静默丢弃超出的部分,导致数据丢失!

🚨 长度截断陷阱

  • 自动转换为超链接时,Excel对URL长度有严格限制(通常为255个字符)

  • 超过这个长度的链接会被无情截断,生成无效的超链接

那么,有没有办法让pandas“安分守己”,老老实实地将URL保存为普通文本呢?

答案是肯定的!本文将为你揭秘如何通过简单的设置,彻底告别这些烦恼,确保你的URL数据完整无缺地导出到Excel中。

无论你是数据分析师、爬虫工程师,还是日常需要处理大量URL的办公人员,这个技巧都将为你的工作带来极大的便利!✨

接下来,让我们一起来看看具体的实现方法……

小编环境

import sys

print('python 版本:',sys.version.split('|')[0])
#python 版本: 3.11.11

import pandas as pd
print("pandas 版本:", pd.__version__)
#pandas 版本: 2.2.2

默认带url导出

默认导出Excel文件时,带URL的单元格,自动会变为超链接的形式,显示为蓝色的样式

import pandas as pd

data=pd.read_excel("url测试数据.xlsx", dtype='str', engine='openpyxl')
data.to_excel('url测试数据-默认带url导出.xlsx',index=False)
未禁止转换

禁止URL转换

禁止URL转换后,输出的单元格是不带超链接

import pandas as pd

data=pd.read_excel("url测试数据.xlsx", dtype='str', engine='openpyxl')
with pd.ExcelWriter('url测试数据-禁止URL转换.xlsx', 
                    engine='xlsxwriter', 
                    engine_kwargs={'options': {'strings_to_urls': False}}
                   ) as xlsx:
    data.to_excel(xlsx,index=False)
禁止URL转换

历史相关文章


以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容