For 循环跳过最后一个列表
For Loop Skips last List
我有一个 for 循环语句,当执行时总是创建比列表少一个 excel。但是,当使用 if 语句的第一部分时(xlwings,修改现有的 excels 它工作正常)想法?
names= list(df_ora['XCODE'].unique())
for prov in names:
#for each matching agency code we create a df2
df2 = df_ora[df_ora['CODE'].isin([prov,'00000'])]
# create a filename to verify the excel exisits
filename = (dir_src + '\' + str(prov) + '_' + 'Claims' + '.xlsx')
if os.path.isfile(filename):
wb = xw.Book(filename)
ws = wb.sheets['DATA']
ws.clear_contents()
ws.range('A1').options(index=False).value = df2
ws.autofit()
wb = xw.Book(filename)
wb.save()
xw.apps[0].quit()
counter = counter + 1
else:
writer = pd.ExcelWriter(filename, engine='xlsxwriter')
df2.to_excel(writer, sheet_name='DATA',index=False)
counter = counter + 1
尝试在 df2.to_excel(writer, sheet_name='DATA',index=False)
之后立即关闭编写器或 writer.save()
。在明确关闭或超出范围之前,作者的内容可能不会刷新到磁盘。
我有一个 for 循环语句,当执行时总是创建比列表少一个 excel。但是,当使用 if 语句的第一部分时(xlwings,修改现有的 excels 它工作正常)想法?
names= list(df_ora['XCODE'].unique())
for prov in names:
#for each matching agency code we create a df2
df2 = df_ora[df_ora['CODE'].isin([prov,'00000'])]
# create a filename to verify the excel exisits
filename = (dir_src + '\' + str(prov) + '_' + 'Claims' + '.xlsx')
if os.path.isfile(filename):
wb = xw.Book(filename)
ws = wb.sheets['DATA']
ws.clear_contents()
ws.range('A1').options(index=False).value = df2
ws.autofit()
wb = xw.Book(filename)
wb.save()
xw.apps[0].quit()
counter = counter + 1
else:
writer = pd.ExcelWriter(filename, engine='xlsxwriter')
df2.to_excel(writer, sheet_name='DATA',index=False)
counter = counter + 1
尝试在 df2.to_excel(writer, sheet_name='DATA',index=False)
之后立即关闭编写器或 writer.save()
。在明确关闭或超出范围之前,作者的内容可能不会刷新到磁盘。