专业的编程技术博客社区

网站首页 > 博客文章 正文

Python玩转Excel(第2期)~这里只有干货

baijin 2024-09-29 08:56:22 博客文章 7 ℃ 0 评论

第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      name
0   1    liming
1   2  zhangsan
2   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 pd
import 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 pd
import matplotlib.pyplot as plt
data=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。下期见

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表