Как создать файл Excel, даже если нет данных. Python панды ExcelWriter - PullRequest
0 голосов
/ 25 октября 2019

Мне нужно еженедельно доставлять файл Excel в назначенную папку, но иногда нет данных для доставки.

В этом случае мне все еще нужен пустой файл с заголовком и всем, только без данных,

import pandas as pd


df = pd.DataFrame({
    'PolicyNumber':['Pol1','Pol2','Pol3','Pol4','Pol5'],
    'OfficeLocation':['San Diego', 'San Diego','San Diego','Vista','Vista'],
    'Premium':[800,300,650,200,700]
})


folder_list = ['San Diego', 'Vista']

for location, d in df.groupby('OfficeLocation'):
    for folder in folder_list:
        if folder == location:            
            d.to_excel(f'\\\\server\user\name\{folder}\{location}.xlsx',sheet_name=location, 

1 Ответ

0 голосов
/ 31 октября 2019

Я думаю, что вы должны перечислить по каталогу folder_list, поскольку фрейм данных OfficeLocation уже исправлен. Я добавил Лос-Анджелес в качестве примера.

import os
import pandas as pd

df = pd.DataFrame({
    'PolicyNumber':['Pol1','Pol2','Pol3','Pol4','Pol5'],
    'OfficeLocation':['San Diego', 'San Diego','San Diego','Vista','Vista'],
    'Premium':[800,300,650,200,700]
})


folder_list = ['San Diego', 'Vista','Los Angeles']


desktop = os.path.join(os.path.join(os.environ["USERPROFILE"]), 'Desktop')
excel_name = "\\df" + "." + "xlsx"
writer = pd.ExcelWriter(desktop + str(excel_name), engine = "xlsxwriter")

try:
    for idx,foldername in enumerate(folder_list):
        subset = df[df['OfficeLocation'] == foldername]
        subset.to_excel(writer, sheet_name = str(foldername), index = False)

finally:
    writer.save() 
...