Python pandas не могу прочитать галочки Excel - PullRequest
0 голосов
/ 06 мая 2020

Что мне просто нужно сделать, так это прочитать некоторые файлы 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, есть проверка для user2. Однако pandas не может его видеть и по-прежнему загружает весь фрейм данных со значениями «NaN». У меня вопрос, могу ли я как-нибудь это решить? В файлах xlsx это небольшие изображения. Мне действительно не нужно загружать эти изображения, такие как символ галочки, мне просто нужно как-то их прочитать, поэтому я могу сказать python удалить эту строку, если заблокированная ячейка не является NaN.

1 Ответ

0 голосов
/ 06 мая 2020

Я нашел решение, добавив этот код в основной код:

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

, который сообщает мне, в каких ячейках я есть изображения. после этого я сохраняю их в списке, а затем отбрасываю ячейки с помощью:

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

Обратите внимание, что приведенный выше код не распознает изображения. В моем случае у меня были только галочки в заблокированном (распознаваемом как $ B от win32com), так что у меня это работает нормально.

...