You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pandas读取含NaN与带文本的超链接列?

解决Pandas读取Excel超链接丢失的问题

问题原因

你尝试的converters方法报错,是因为Pandas默认读取Excel时会将单元格内容直接转换为字符串类型,所以lambda函数中的x是字符串对象,自然没有value和hyperlink属性。

解决方案

直接使用openpyxl库读取Excel文件,遍历目标列的单元格,提取显示文本和超链接信息,再构建DataFrame。

代码示例

import openpyxl
import pandas as pd

# 文件路径
path = r'path_to_file'

# 加载工作簿并指定工作表
wb = openpyxl.load_workbook(path)
ws = wb['Jobs']

# 目标列:Pandas中的"Unnamed: 18"对应Excel的第19列(列标S)
target_col = 19
link_data = []

# 遍历行(跳过表头,从第2行开始)
for row in ws.iter_rows(min_row=2, min_col=target_col, max_col=target_col, values_only=False):
    cell = row[0]
    if not cell.value:
        # 处理NaN(空单元格)
        link_data.append(None)
    else:
        display_text = cell.value
        # 提取超链接(如果存在)
        hyperlink = cell.hyperlink.target if cell.hyperlink else None
        if hyperlink:
            link_data.append(f"{display_text}|{hyperlink}")
        else:
            link_data.append(display_text)

# 生成包含超链接信息的DataFrame
df = pd.DataFrame(link_data, columns=["Unnamed: 18"])
print(df)

补充说明

  • 如果需要将提取的超链接数据与原Excel的其他列合并,可以先用Pandas读取整个表格,再将提取的超链接列替换进去。
  • 确保已经安装openpyxl库:pip install openpyxl

内容的提问来源于stack exchange,提问作者Tomasz Wójcik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:45:42