【问题标题】:Retain hyperlinks in Pandas - Excel to dataframe在 Pandas 中保留超链接 - Excel 到数据框
【发布时间】:2017-01-20 09:07:38
【问题描述】:

我有一个大的 excel 文件,其中包含需要转换为 HTML 的几张数据。我很高兴尝试 Pandas 来帮助简化转换,避免将 Excel 工作表保存为 HTML,然后花一整天时间删除所有可怕的 MS 标签。

我能够读取 Excel 文件 + 工作表,然后将它们作为数据框加载。唯一的问题是它将所有超链接从单元格中剥离出来。我已经查看了所有内容,但找不到保留超链接的答案。这是我第一次使用 Pandas,所以可能只是缺乏经验。下面是我的代码和输出的屏幕截图。感谢您的帮助。

In [2]: import pandas as pd

In [3]: xls_file = pd.ExcelFile('Desktop/cfec-temp/blackbook/blackbook.xlsx')

In [4]: xls_file
Out[4]: <pandas.io.excel.ExcelFile at 0x1132ce4e0>

In [5]: xls_file.sheet_names
Out[5]: ['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4', 'Sheet5', 'Sheet6', 'Sheet7']

In [6]: df = xls_file.parse('Sheet1')

In [7]: df

【问题讨论】:

标签: python python-3.x pandas


【解决方案1】:

我要做的是使用 openpyxl 获取超链接,然后遍历 for 循环中的行,创建超链接列表,并在您的 pandas 数据框中添加一个新列:

import openpxyl
import pandas as pd

df = pd.read_excel('file.xlsm')

wb = openpyxl.load_workbook('yourfile.xlsm')
ws = wb.get_sheet_by_name('Sheet1')
print(ws.cell(row=2, column=1).hyperlink.target)

links = []
for i in range(2, ws.max_row + 1):  # 2nd arg in range() not inclusive, so add 1
    links.append(ws.cell(row=i, column=1).hyperlink.target)

df['link'] = links

与我在other question 中回答的代码相同

【讨论】:

  • 错字:import openpyxl AND wb.get_sheet_by_name 已被贬值使用 wb[sheetname]
猜你喜欢
  • 1970-01-01
  • 2017-12-21
  • 2020-12-28
  • 2018-02-22
  • 1970-01-01
  • 2015-10-27
  • 2021-05-12
  • 2015-04-12
  • 2014-09-01
相关资源
最近更新 更多