Python xlsxwriter引擎下的条件格式
数据框列“index_val”中有六个不同的值,我已将它们导入到同一工作簿的每个新工作表中Python xlsxwriter引擎下的条件格式,python,pandas,export-to-excel,xlsxwriter,Python,Pandas,Export To Excel,Xlsxwriter,数据框列“index_val”中有六个不同的值,我已将它们导入到同一工作簿的每个新工作表中 df_dict = {} for zone in df['index_val'].unique(): zone_df = df[df['index_val'] == zone] df_dict[zone] = zone_df def save_xlsx(df_dict, path): with pd.ExcelWriter(path) a
df_dict = {}
for zone in df['index_val'].unique():
zone_df = df[df['index_val'] == zone]
df_dict[zone] = zone_df
def save_xlsx(df_dict, path):
with pd.ExcelWriter(path) as writer:
for key in df_dict:
df_dict[key].to_excel(writer, key, index=False)
writer.save()
save_xlsx(df_dict, 'report.xlsx')
Excel工作表中生成的输出尚未格式化为适合列宽。例如,第1列中的值要求列宽为92,而第B列中的值要求列宽为16。我尝试使用set\u column
方法,但由于工作表名称存储为字典,因此返回了一个错误
这些数据的夹头如下所示:
name_char index_val count
name1 A 36
name2 A 38
name3 B 76
name4 C 12
name3 C 25
name6 F 42
将有6个工作表,每个工作表都有来自index_val的名称。每个工作表都有第一列name_char,第二列作为唯一index_val。我想要的是将第一列宽度设置为92,第二列设置为16。或者,是否有根据最大列值自动设置每列宽度的过程?您可以执行以下操作:
df_dict={}
对于df['index_val']中的区域。唯一()
区域_df=df[df['index_val']==zone]
df_dict[区域]=区域
def save_xlsx(df_dict,路径):
使用pd.ExcelWriter(路径)作为写入程序:
对于df_dict中的键:
df_dict[key]。到excel(writer,key,index=False)
工作簿=writer.book
工作表=编写器。工作表[键]
工作表.集合列(1,1,92)
工作表.集合列(2,2,16)
writer.save()
保存(df_dict,'report.xlsx')
set\u列支持0索引,因此我必须将参数更新到工作表。set\u列(0,0,92)
和工作表。set\u列(1,1,16)
。