Вам нужно будет указать диапазон каким-либо образом, но вы можете сделать это программно на основе shape () фрейма данных.
Например:
import xlsxwriter
import pandas as pd
df = pd.DataFrame({'A' : [1, 2, 3, 4, 5, 6, 7, 8],
'B' : [1, 2, 3, 4, 5, 6, 7, 8],
'C' : [1, 2, 3, 4, 5, 6, 7, 8],
'D' : [1, 2, 3, 4, 5, 6, 7, 8]})
writer = pd.ExcelWriter('test.xlsx', engine = 'xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')
# Get the xlsxwriter objects from the dataframe writer object.
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# Apply the autofilter based on the dimensions of the dataframe.
worksheet.autofilter(0, 0, df.shape[0], df.shape[1])
workbook.close()
writer.save()
Вывод: