簡體   English   中英

Python如何從熊貓數據框和openpyxl使用自動過濾器創建excel

[英]Python how to create excel with autofilter from pandas dataframe and openpyxl

我嘗試使用自動過濾器從Python pandas數據框創建一個excel文件,以默認顯示無效數據。

這是我的輸入數據框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數據框的默認值?

我一直在尋找相同的東西,但找不到錯誤。 嘗試/錯誤使我做出了您需要使用列表的決定

ws.auto_filter.add_filter_column(1, ['INVALID'], blank=False)

參考https://openpyxl.readthedocs.io/en/2.5/filters.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM