第1期发布之后,反响特别好,很快通过审核,不到2小时推荐量2600多,还是挺高的,说明大家对此版块内容还是感兴趣的,激发了我创作的动力。谢谢大家,今天加班再更新一期。
一、如何创建数据的‘’粮仓‘’(如何使用pandas向Excel里面写入数据)
1.将字典数据通过pandas写入Excel中
import pandas as pd#定义一个字典dic={ 'id':[1,2,3], 'name':['liming','zhangsan','wangwu']}#将字典格式化为DataFrame数据data = pd.DataFrame(dic)#将数据写入Excel中data.to_excel('test.xlsx')print(data)********************************* id name0 1 liming1 2 zhangsan2 3 wangwu******************************* #Excel文件内容就不在此演示,该数据保存在工程当前目录下test.xlsx中
2.Pandas将数据写入多个sheet中
import pandas as pd#定义2个字典dic1={ 'id':[1,2,3], 'name':['liming','zhangsan','wangwu']}dic2={ 'id':['001','002','003'], 'name':['liu ying','zhang hao','hua tuo']}#将字典数据格式化为DataFrame数据df1 = pd.DataFrame(dic1)df2 = pd.DataFrame(dic2)#将数据写入Excel中write = pd.ExcelWriter('test.xlsx')df1.to_excel(write,sheet_name='df1',index=False)df2.to_excel(write,sheet_name='df2',index=False)write.save()write.close()
划重点:这里重点介绍下ExcelWriter()
使用ExcelWriter()可以向同一个excel的不同sheet中写入对应的表格数据,首先需要创建一个writer对象,传入的主要参数为已存在容器表格的路径及文件名称:
writer = pd.ExcelWriter(r'D:demo.xlsx')
基于已创建的writer对象,可以利用to_excel()方法将不同的数据框及其对应的sheet名称写入该writer对象中,并在全部表格写入完成之后,使用save()方法来执行writer中内容向对应实体excel文件写入数据的过程.
'''创建数据框1'''df1 = pd.DataFrame({'V1':np.random.rand(100), 'V2 ':np.random.rand(100), 'V3':np.random.rand(100)})df1.to_excel(writer,sheet_name='sheet1',index=False)'''创建数据框2'''df2 = pd.DataFrame({'V1':np.random.rand(100), 'V2 ':np.random.rand(100), 'V3':np.random.rand(100)})df2.to_excel(writer,sheet_name='sheet2',index=False)'''数据写出到excel文件中'''writer.save()write.close()
这时之前指定的外部excel文件中便成功存入相应的内容:
二、做一个可以拼颜值的图(分组柱图深度优化)
import pandas as pdimport matplotlib.pyplot as plt#读取数据data = pd.read_excel('book2.xlsx')#对数据进行排序data.sort_values(by=2018,inplace=True,ascending=False)#生成两组柱状图(多组类似)data.plot.bar(x='product',y=[2018,2019],color=['orange','red'])#设置标题plt.title('Product annual sales comparison chart',fontsize=13,fontweight='bold')#设置x轴plt.xlabel('Product',fontweight='bold')#设置y轴plt.ylabel('Sales Volume',fontweight='bold')#设置x轴标题斜45度ax=plt.gca()ax.set_xticklabels(data['product'],rotation=45,ha='right')#自动调整子图参数,使之填充整个图像区域plt.tight_layout()#显示plt.show()
这个效果是不是看起来很高大上,大家可以进一步修改参数进行优化。因为里面基本都是设置类的函数,使用起来比较简单,就不依依介绍了。
三、制作叠加柱状图
import pandas as pdimport matplotlib.pyplot as pltdata=pd.read_excel('book3.xlsx'data.plot.bar(x='username',y=['Oct','Nov','dec'],stacked=True)# #自动调整子图参数,使之填充整个图像区域plt.tight_layout()# # # #显示plt.show()
如果想得到横向的只需改写一句代码
data.plot.barh(x='username',y=['Oct','Nov','dec'],stacked=True)
今天的内容就分享到这里,Python语言使用起来确实很简单,很容易上手,但也容易忘,多练、多记才能更好理解和掌握。
人生苦短,我用python。下期见