Python pandas无法读取excel校验标记

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

我只需要做的是,读取一些xlsx文件,并删除每一行包含检查标记。所以我试了一下。

df = pd.read_excel("file.xlsx")
df = df[~df['Locked'].isin([stringlist])] # got several different check marks in stringlist

不幸的是,当我尝试下面的代码时,我注意到上面的代码不能读取复选标记。

df = pd.read_excel("file.xlsx")

print (df)

    Users:    Locked:

    user1     NaN
    user2     NaN

在xlsx文件的Locked列中,有user2的校验。然而,pandas无法看到它,仍然加载所有的数据帧与'NaN'值。我的问题是,我可以解决这个问题吗?在xlsx文件中,检查的是小图片。我并不真的需要加载这些图像,比如勾选字符,我只是需要以某种方式读取它们,所以我可以告诉python,如果锁定的单元格不是'NaN',就删除这一行。

python pandas xlsx
1个回答
0
投票

我找到了一个解决方案,在主代码中加入了这段代码。

import win32com.client
x=win32com.client.Dispatch("Excel.Application")
wb=x.Workbooks.Open("<path_to.xlsx>")
ws=wb.Sheets("Sheet1")
for i in ws.Shapes:
    print i.TopLeftCell.Address

上述代码的结果是:

$B$2

然后我将这些图片保存在列表中,然后我用.NET技术删除这些单元格。

for n in cell_list:
    a = n[3:]
    df = df.drop([a])

请注意,上面的代码并不能识别图像是什么。在我的例子中,我只在锁定的单元格中得到了复选标记(从win32com中识别为$B),所以这对我来说工作得很好。

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