首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留Pandas中的超链接- Excel到dataframe

保留Pandas中的超链接- Excel到dataframe
EN

Stack Overflow用户
提问于 2016-09-13 04:50:33
回答 1查看 3.8K关注 0票数 4

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

我能够读取Excel文件+工作表,然后将它们作为数据帧加载。唯一的问题是,它正在剥离单元格中的所有超链接。我已经找遍了所有地方,但没有找到保留超链接的答案。这是我第一次使用Pandas,所以它可能只是缺乏经验。下面是我的代码和输出的截图。谢谢你的帮助。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 04:13:27

我要做的是使用openpyxl获取超链接,然后迭代for循环中的行,创建一个超链接列表,并在pandas dataframe中添加一个新列:

代码语言:javascript
复制
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中回答的第一段代码相同

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39458598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档