最近在公司实习时利用空余时间帮同事写了一个自动生成一个小数据日报的程序,期间发现了pandas的一些小技巧,这里总结一下。
1.重新索引,从零开始
df.reset_index(drop=True)
2.行和列相互转换
df2=df.stack().unstack(0)
3.画图图例显示不正常的解决办法
plt.plot(df)
plt.legend(loc="best")
这种情况会报错:No handles with labels found to put in legend.
解决办法是把labels传给legend,如下代码:
plt.legend(["col1","col2","col3"],loc="best")
4.将多个sheet写入一个workbook
先构建一个writer,并指定保存路径
writer=pd.ExcelWriter(r"D:\work\daily"+str(today.month)+"."+str(today.day)+".xlsx")
后面再把多个df写入workbook
df1.to_excel(writer,sheet_name="sht1")
df2.to_excel(writer,sheet_name="sht2")
最后还要保存
writer.save()
如果是要写入同一个sheet,那么写入的时候把sheet_name指定为同一个就行,再通过其他参数指定df写入的位置
df1.to_excel(writer,sheet_name="sht1",startrow=1,startcol=1)
df2.to_excel(writer,sheet_name="sht1",startrow=10,startcol=1)
如果是不想要index或columns的值,那么需要改index或header参数,这两个默认都为True
df.to_excel(writer,sheet_name="sht",index=False,header=False)
网友评论