Я попытался создать файл excel из фрейма данных Python pandas с автоматическим фильтром для отображения недопустимых данных по умолчанию.
Вот мой входной кадр данных df:
ITEM RESULT
A1 VALID
A2 VALID
A# INVALID
Я хочу добавить рабочий лист «Тест фильтра» в существующий файл excel «filter_output.xlsx» и с автоматическим фильтром, установленным в столбце «РЕЗУЛЬТАТ», чтобы по умолчанию отображались только «НЕДОПУСТИМЫЕ» данные.
Вот мой код:
import pandas as pd
from openpyxl import load_workbook
workbook=load_workbook('filter_output.xlsx')
writer = pd.ExcelWriter('filter_output.xlsx', engine='openpyxl')
writer.book=workbook
df.to_excel(writer, 'filter test', index=False)
ws=writer.sheets['filter test']
ws.auto_filter.ref='A:B'
ws.auto_filter.add_filter_column(1, 'INVALID', blank=False)
writer.save()
workbook.close()
Я получил следующую ошибку:
ws.auto_filter.add_filter_column(1, 'INVALID', blank=False)
File "C:\Python27\lib\site-packages\openpyxl\worksheet\filters.py", line 357, in add_filter_column
self.filterColumn.append(FilterColumn(colId=col_id, vals=vals, blank=blank))
File "C:\Python27\lib\site-packages\openpyxl\worksheet\filters.py", line 315, in __init__
self.filters.filter = vals
File "C:\Python27\lib\site-packages\openpyxl\descriptors\sequence.py", line 26, in __set__
raise TypeError("Value must be a sequence")
TypeError: Value must be a sequence
Любая идея о том, как исправить эту ошибку? Есть ли лучший способ создать excel с включенным автоматическим фильтром, чтобы показывать значение по умолчанию только из кадра данных pandas?