熊猫读取 Excel 并用删除线标记行

问题描述 投票:0回答:1

我必须使用 python 处理 Excel 工作表,以便稍后将其放入数据库中。

我的问题是,我有很多行/单元格带有striketrough。我想正常读取 Excel 并用一个或多个删除线单元格标记每一行。我刚刚找到了跳过这些行的解决方案,但我想标记它。

我确实找到了一种使用

openpyxl
打印删除线行的方法,但我想使用 pandas,因为稍后我必须添加和剪切很多列,而 pandas 最适合。

python pandas excel openpyxl strikethrough
1个回答
0
投票

很难想象您的电子表格看起来如何,但这里有一个示例可以为您提供一般逻辑。基本上,我们使用 openpyxl

 中的 
Font.strikethrough 来检查单元格的字体是否被删除。

from openpyxl import load_workbook

ws = load_workbook("file.xlsx")["Sheet1"]

data = [[cell for cell in row] for row in ws.iter_rows(values_only=True)]

df = pd.DataFrame(data[1:], columns=data[0])

df["Flag"] = [
    any(cell.font.strikethrough for cell in row) for row in ws.iter_rows(min_row=2)
]

输出:

print(df)

  col1  col2   col3   Flag
0  foo     1  test1   True
1  bar     2  test2  False
2  qux     3  test3   True
3  baz     4  test4  False

使用的输入:

© www.soinside.com 2019 - 2024. All rights reserved.