今天讲一下:

如何将数据分析结果存放于同一Excel文件中的不同Sheet页

先回顾一下:

学习笔记的第一篇,就讲过了如何利用Pandas的read_excel和to_excel方法从excel文件中读取数据和写Excel文件,其中讲到写Excel时,我们只写了一张表,因为如果使用to_excel(文件名)这种方法,第二次写文件时会直接覆盖上一次写的结果,那就永远只有最后一次写入的那张表。

今天本来是想讲一下openpyxl模块的,但后来发现pandas的to_excel方法其实也能写多个sheet页,所以我先看这个方法:

1、需要用到模块

pandas datetime

先引入这两个武器:

import pandas as pd

import datetime as dt

2、准备工作:

我们使用上篇那个test009.xlsx文件,不再另外准备数据表了。

3、先导入费用表和部门信息表

bf = pd.read_excel("d:\\data\\test009.xlsx",sheet_name="费用")

bm = pd.read_excel("d:\\data\\test009.xlsx",sheet_name="部门")

4、组合两张表数据:

df = pd.merge(bf,bm,left_on="工号",right_on="employee ID")

5、今天的任务是把组合后的数据中“工号”、“姓名”、“报销日期”、“费用类型”、“报销金额”、“部门”等列的数据,按9月和10月时间过滤,分别存入一个excel表中的两个sheet页,sheet页名分别为"Sep"和"Oct"

6、先把数据过滤出来:

df09 = df[["工号","姓名_x","报销日期","费用类型","报销金额","部门"]].where(df["报销日期"] < dt.datetime(2018,10,1))

df10 = df[["工号","姓名_x","报销日期","费用类型","报销金额","部门"]].where(df["报销日期"] >= dt.datetime(2018,10,1))

上面语句中,dt.datetime(2018,10,1)方法用于“构造”一个datetime标准时间,它的值为“2018-10-01 00:00:00 000000",报销日期小于它的数据则是9月份的报销记录,报销日期大于等于它的,则是10月份的报销记录。两条命令运行后的结果如下:

我们可以发现两个结果中都存在许多缺失值的数据行,这是因为我们使用where方法对原数据集df进行过滤时,它会每行去进行匹配筛选,如符合,则取原值,如不符合,则设为缺失值,因此,在存入excel文件之前,我们还需要使用dropna方法把缺失值的数据行都删除:

df09 = df09.dropna()

df10 = df10.dropna()

7、将df09和df10数据写入excel文件:

writer = pd.ExcelWriter('d:\\data\\test010.xlsx')

df09.to_excel(writer, sheet_name="Sep",index=False)

df10.to_excel(writer, sheet_name="Oct",index=False)

writer.save()

writer.close()

结果如下:

上面主要是使用ExcelWriter方法,在内存中先创建了一个Excelbook的writer对象,然后在内存中对其进行操作,无论你写多少张sheet页,在save前,都不会影响实际的文件内容,因此,写完所有数据后,还需要使用save方法保存到文件中,并将writer对象关闭。

今天就先总结到这儿,如果大家有什么问题,可在公众号后台给我留言,在我能力圈内的,尽快给大家回复。

下篇预告:

讲一下pandas中另一种数据透视表方法

如何使用python效率办公_日常office工作中如何用python提升效率014相关推荐

  1. python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图

    一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试. 1.提前准备 一般准备以下四样就可以啦. 第一,电脑安装python,我装的是3.6. 第二,安装第三方库jieba ...

  2. python特点 可移植性_下面的选项中,不属于Python特点的是( )_学小易找答案

    [判断题]审美价值的特性--精神性. [填空题]大脑右半球:非言语的.().直观的.音乐的.几何图形识别的.形象思维的功能. [单选题]下列选项中( )实现是最常用的Python版本,也称之为clas ...

  3. ppt复制切片器_攻略|致敬20个可以提升效率的PPT操作技巧

    微信公众号:有宝物的柜子 编辑:落水无波 2020-08-01 原创 除了最近推送的 PDF教程|科研狗应该如何使得PDF文件页面统一大小 PDF教程|如何压缩PDF文件,实现"瘦身&quo ...

  4. python在工作上可以干什么-学习Python以后能在企业里工作中能做什么?

    原标题:学习Python以后能在企业里工作中能做什么? 学习Python以后能在企业里工作中能做什么? ​​大数据Python作为一门独特的语言在企业的应用十分重要.有人认为Python是一门新增的语 ...

  5. python contains类似函数_01--实际工作中,python基础理念和数据处理

    1.工作中遇到的python坑 1.1 合并文件 问题:正常将文件依次读取并append时,莫名出现很多空行. 解决:在append前删除空行: data_tmp 1.2 重复数据行 问题: appe ...

  6. chatgpt赋能python:Python开立方根:什么是立方根,如何用Python计算?

    Python开立方根:什么是立方根,如何用Python计算? 如果您正在寻找一种简单的方法来计算任何数字的立方根,那么Python可以为您提供答案.立方根是指一个数字的三次方根,也就是说,要找到一个数 ...

  7. 工作中一个简单python数据处理-统计csv文件并画柱状图

    工作中一个简单python数据处理 工作中需要parsing一些短信数据,会有接口直接将数据导入到csv文件,但是报告时需要统计csv文件中数据频率,所以写了一个python脚本做一些简单处理. 流程 ...

  8. 用python自动化办公_知乎1800赞 | 用Python自动化办公能做到哪些有趣或有用的事情?...

    原标题:知乎1800赞 | 用Python自动化办公能做到哪些有趣或有用的事情? 知友:陈廷聿(1800+ 赞同) 利益相关:Python办公自动化课程的讲师 我想介绍一下我是如何从每天工作8小时,进 ...

  9. python 日志解决方案_日常Python问题的绝佳解决方案

    python 日志解决方案 Python提供了一组独特的工具和语言功能,可帮助使您的代码更加优雅,可读性和直观性. 通过为正确的问题选择正确的工具,您的代码将更易于维护. 在本文中,我们将研究其中的三 ...

最新文章

  1. Python Numpy多维数组.sum(axis=0/1/2...) 详解
  2. Nginx SSL 配置
  3. SSH-KeyGen 的用法 【转载】
  4. js遍历追加html子样式,前端基本功:JS(十一)动画封装(CSS样式获取、JSON遍历)...
  5. Spring5参考指南:AOP代理
  6. word List 12
  7. 【转】.NET框架简介
  8. lucene简单实例
  9. 全新微头像V2.1.8版全套iApp源码分享
  10. 再说setlocale——关于区域名称
  11. https://download.csdn.net/download/kuyu27537830/1322930#comment
  12. 如何生成密钥文件Snk .
  13. 网站快照被劫持,网站被劫持跳转另一个网站解决办法
  14. 天耀18期 - 02.Java基础-标识符、关键字、数据类型【作业】
  15. 最简单可靠的机房温度电话报警
  16. 中企海外周报 | 中国众多品牌亮相IFA;喜茶新加坡第三家店开业
  17. cjson解析器说明
  18. win10计算机ip如何更改,Win10本地连接ip怎么更改_Win10怎么更改ip地址?-192路由网...
  19. unityplayerpre存档_Unity3d中的PlayerPrefs游戏存档API的扩展
  20. Hive 多列转行 (if函数)

热门文章

  1. 大有可为的GNN:DeepWalk
  2. 数据结构_树与二叉树(mindmap)+LeetCode_100.相同的树(C语言)
  3. 如何设计实时数据平台(设计篇)
  4. MFC_自定义事件响应
  5. Pattern of Patterns
  6. 【收藏】Docker安装微信
  7. ping发送超大数据包(高级用法)
  8. 使用KubeKey 离线环境部署 KubeSphere v3.0.0
  9. linux根据端口查pid、根据pid查端口、根据pid查服务路径
  10. veth-pair技术在docker中的应用(docker网络通信)及tomcat Dockerfile示例