pands.dataframe,最近遇到当columns是多行(多个表头)时,存表格时,index=False,报错,查了很多资料,结合了多个网上的记录才弄好,纪录一下。
首先就是如何将dataframe的columns设置成2级表头见代码和生成的表格:
M_F=pd.DataFrame(M_F,columns=[['宜昌天气预测报']*8+['五个分区降雨量(mm)']*5,['起报日期','预报日期','气温(℃)','降水(mm)','风速(m/s)','风向','气压(hPa)',
'湿度(%)','兴山','夷陵区','五峰','长阳','宜都']])`
生成的表格:
其实就是将columns设置成一个2维的表格。
但是这样在生成表格时,表格会有一行空白行,且表格第一列为dataframe的index,所以一般选择(.to_excel(writer,sheet_name=‘3小时级记录’,index=False),但是这里由于是两个表头,代码会报错。故需要用到另外的操作看代码:
writer = pd.ExcelWriter('宜昌气象预测数据(3h)\{}.xlsx'.format(datetime.now().strftime('%Y%m%d')),engine='xlsxwriter')#可以实现将多个dataframe按不同sheet,保存在一个excel中。
M_F.to_excel(writer,sheet_name='3小时级记录')
T_D.to_excel(writer,sheet_name='日记录')
# writer.sheets['3小时级记录'].delete_cols(1,2)
# writer.sheets['3小时级记录'].delete_rows(3)
# writer.sheets['日记录'].delete_cols(1)
# writer.sheets['日记录'].delete_rows(3)
writer.sheets['3小时级记录'].set_column(0, 0, None, None, {'hidden': True})#删除表格第一列
writer.sheets['3小时级记录'].set_row(2, None, None, {'hidden': True})#删除表格第3行空白行
writer.sheets['日记录'].set_column(0, 0, None, None, {'hidden': True})
writer.sheets['日记录'].set_row(2, None, None, {'hidden': True})
writer.save()
注意,engine='xlsxwriter’,不可缺少,不然后面set_column方法就用不了。
最后感谢两只大佬的笔记:
https://blog.csdn.net/qq_39463197/article/details/116591204
https://www.zhihu.com/question/446994035