Python入门到实战(五)conda使用、pandas操作Excel、数据可视化、绘制柱状图、操作Word、数据报表生成、pip install国内镜像下载

  • conda使用
    • 常用操作
  • 配置VS+Conda
  • Python实现办公自动化
    • 操作Excel
      • Pandas将数据写入Excels
      • Pandas读取Excel数据并排序
    • Pandas绘制数据
      • 学习Pandas绘制柱状图
      • 学习Pandas绘制叠加柱状图
    • 操作Word
      • 添加数据
    • pip install xx 切换国内镜像服务器下载,解决下载慢的问题
    • ImportError: DLL load failed while importing etree: 找不到指定的模块
  • 案例 统计学生成绩 数据报表的生成(Excel+Word)

conda使用

常用操作

查看环境中的所有包:conda list
安装 XXX 包:conda install XXX
删除 XXX 包:conda remove XXX :
列出所有环境:conda env list
查看版本:conda–version
更新:conda update conda
创建环境:conda create -n<env_name> python=x.x
删除环境:conda remove -n<env_name> --all
删除指定环境:conda env remove -n XXX
激活环境:active <env_name>
退出环境:deactivate

配置VS+Conda

我配置三个环境变量,C:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin
在进入VSCode从Python.pythopath中改到Anaconda目录下重启VS后即可使用

Python实现办公自动化

1 将Excel文件读入计算机
2 操作excel 数据可视化操作(pandas)
3 操作word (python-word)

操作Excel

Pandas将数据写入Excels

Series与DataFrame:

In [1]: import pandas as pd
In [5]: df=pd.DataFrame({...:      'id':[1,2,3],...:       'name':['张','李四','王五'],...:        'age':[19,20,21]...:        })In [6]: df
Out[6]:id name  age
0   1    张   19
1   2   李四   20
2   3   王五   21In [7]: df=df.set_index('id')In [8]: df
Out[8]:name  age
id
1     张   19
2    李四   20
3    王五   21In [11]: df.to_excel(r'C:\Users\ASUS\Desktop\MLCode\people.xlsx')

结果图片:

Pandas读取Excel数据并排序

下面一段代码实现读取上头的Excel文件并进行一个排序操作

In [17]: path='C:\\Users\\ASUS\\Desktop\\MLCode\\people.xlsx'In [18]: people=pd.read_excel(path,sheet_name='Sheet1')In [19]: people
Out[19]:id name  age
0   1    张   19
1   2   李四   20
2   3   王五   21In [20]: people.sort_values(by='age',ascending=False,inplace=True)
#inplace表示就地,直接修改people,若为FALSE则会返回一个对象,对people本身不会修改
In [21]: print(people)id name  age
2   3   王五   21
1   2   李四   20
0   1    张   19

Pandas绘制数据

学习Pandas绘制柱状图

想要通过Pandas可视化数据读取student里的数据并通过可视化展示,代码如下:

import pandas as pd
import matplotlib.pyplot as pltstudents=pd.read_excel(r'C:\Users\ASUS\Desktop\MLCode\student.xlsx')
students.sort_values(by='Score',inplace=True,ascending=False)
plt.bar(students['Name'],students.Score,color='orange')
plt.title('Student score')#名称是学生分数
plt.xlabel('Name')#横坐标是name
plt.ylabel('score')#纵坐标是score
plt.xticks(students.Name,rotation='90')#学生名旋转90读
plt.tight_layout()
plt.show()


如图所示,数据成功表示
如果需要显示中文,则:

import pandas as pd
import matplotlib.pyplot as pltstudents=pd.read_excel(r'C:\Users\ASUS\Desktop\MLCode\student.xlsx')
students.sort_values(by='Score',inplace=True,ascending=True)
# add chinese character support
from matplotlib.font_manager import FontProperties
font=FontProperties(fname=r"C:\Windows\Fonts\AdobeSongStd-Light.otf",size=16)
plt.bar(students['Name'],students.Score,color='orange')
plt.title('学生分数:',FontProperties=font)
plt.xlabel('名字',FontProperties=font)
plt.ylabel('分数',FontProperties=font)
plt.xticks(students.Name,rotation='90')
plt.tight_layout()
plt.show()

调库,添加中文支持,用font对象接收,同时指定FontProperties为font即可、字体可从\Windows\Fonts\文件夹目录下寻找合适的字体,效果如下:

学习Pandas绘制叠加柱状图

表中:

Begin代表开学初期考试,middle代表期中考,final代表期末考,目标是求和并排序绘图,代码如下:

import pandas as pd
import matplotlib.pyplot as pltstu=pd.read_excel(r'C:\Users\ASUS\Desktop\MLCode\threemon.xlsx')#读文件
stu['sum']=stu['Begin']+stu['Middle']+stu['Final']#求各时期考试和
stu.sort_values(by='sum',inplace=True)#排序
stu.plot.barh(x='Name',y=['Begin','Middle','Final'],stacked=True)#stack可实现叠加
plt.tight_layout()
plt.show()

结果:

操作Word

实现这个功能需要。pip install python-docx后使用Python-docx实现对Word的增删改查
新建word文档

from docx import Document
document=Document()
document.save('new.docx')

在创建了document对象后,其实就是一个实例了,你可以对它做任何操作,不过都是在内存中,当保存后,它将写入磁盘

添加数据

document.add_paragraph(‘这是一个段落’)
document.add_heading(‘这是一个标题’,level=1)
document.add_page_break() #分页符
table=document.add_table(rows=6,cols=6)
document.add_picture(‘xx.jpg’,width=Inches(1.25))

pip install xx 切换国内镜像服务器下载,解决下载慢的问题

pip install python-docx总是安装失败吗?就像下面这样,或者速度太慢

(base) C:\Users\ASUS> pip install python-docx
Collecting python-docxDownloading python-docx-0.8.10.tar.gz (5.5 MB)|███████▌                        | 1.3 MB 1.2 kB/s eta 1:00:46

下了5分钟,就下载了这么一点,让人绝望。
因为服务器在境外,默认下载源也都是在国外。这个时候就可以通过国内镜像服务器下载,
pip国内的一些镜像还有:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
修改方法就是在打pip install XX后加上-i参数,指定pip源,如:pip install python-docx -i https://mirrors.bfsu.edu.cn/pypi/web/simple/
具体代码如下

(base) C:\Users\ASUS> pip install python-docx -i https://mirrors.bfsu.edu.cn/pypi/web/simple/
Looking in indexes: https://mirrors.bfsu.edu.cn/pypi/web/simple/
Collecting python-docxDownloading https://mirrors.bfsu.edu.cn/pypi/web/packages/e4/83/c66a1934ed5ed8ab1dbb9931f1779079f8bca0f6bbc5793c06c4b5e7d671/python-docx-0.8.10.tar.gz (5.5 MB)|████████████████████████████████| 5.5 MB 3.3 MB/s
Requirement already satisfied: lxml>=2.3.2 in c:\software\anaconda\lib\site-packages (from python-docx) (4.6.1)
Building wheels for collected packages: python-docxBuilding wheel for python-docx (setup.py) ... doneCreated wheel for python-docx: filename=python_docx-0.8.10-py3-none-any.whl size=184495 sha256=63b082dbe118cb159bfba8e59a24cb64c1c7e8c4ceebc7477b2d6d1418d94ffbStored in directory: c:\users\asus\appdata\local\pip\cache\wheels\35\ba\36\4560ae617c53624d0f4026667ece078b5441eb6e49ef3ed0f0
Successfully built python-docx
Installing collected packages: python-docx
Successfully installed python-docx-0.8.10

ImportError: DLL load failed while importing etree: 找不到指定的模块

其实我是要用Document但是却提示我

from lxml import etree
ImportError: DLL load failed while importing etree: 找不到指定的程序

这个时候,先卸载,

PS C:\Users\ASUS\Desktop\MLCode> pip uninstall lxml
Found existing installation: lxml 4.6.1
Uninstalling lxml-4.6.1:Would remove:c:\software\anaconda\lib\site-packages\lxml-4.6.1.dist-info\*c:\software\anaconda\lib\site-packages\lxml\*
Proceed (y/n)? ySuccessfully uninstalled lxml-4.6.1

卸载完成后,在安装,用中科大镜像安装

PS C:\Users\ASUS\Desktop\MLCode> pip install lxml -i https://mirrors.bfsu.edu.cn/pypi/web/simple/
Looking in indexes: https://mirrors.bfsu.edu.cn/pypi/web/simple/
Collecting lxmlDownloading https://mirrors.bfsu.edu.cn/pypi/web/packages/e7/bc/9e7f38333767146191afbb17simple/6ffd2c1d553589a11b7e499f12aacc6cf5cd/lxml-4.6.3-cp38-cp38-win_amd64.whl (3.5 MB)|████████████████████████████████| 3.5 MB 3.3 MB/s
Installing collected packages: lxml                                                       6ffd2c1d553589a11b7e499f12aacc6cf5cd/lxml-4.6.3-cp38-cp38-win_amd64.whl (3.5 MB)
Successfully installed lxml-4.6.3

这样就成功了
希望能有所帮助

案例 统计学生成绩 数据报表的生成(Excel+Word)

大致需求:
统计学生的分数,做从高到低排序,在导出的word中有成绩分析报告title、第一名学生成绩和总共多少名考生参与了考试、
表格数据如下:

代码:

from docx import Document
import pandas as pd
import matplotlib.pyplot as pltimgname='chart.jpg'
stu=pd.read_excel(r'C:\Users\ASUS\Desktop\MLCode\student.xlsx')
stu.sort_values(by='Score',inplace=True,ascending=False)plt.bar(stu.Name,stu.Score,color='orange')plt.title('Score Chart')
plt.xlabel('Name:')
plt.ylabel('Score:')plt.tight_layout()
plt.savefig(imgname)docu=Document()
#标题
p=docu.add_heading('班里学生成绩情况:',level=0)
f_stu=stu.iloc[0,:]['Name']#绝对位置去获取
f_score=stu.iloc[0,:]['Score']#分数p=docu.add_paragraph('班里的第一名是:')
p.add_run(f'{str(f_stu)}分数为:{str(f_score)}').bold=True
#班里情况
p1=docu.add_paragraph(f'有{len(stu.Name)}名学生考试了,总体情况如下:')
table=docu.add_table(rows=len(stu.Name)+1,cols=2)table.cell(0,0).text='学生姓名:'
table.cell(0,1).text='学生分数:'
for i,(index,row) in enumerate(stu.iterrows()):table.cell(i+1,0).text=str(row['Name'])table.cell(i+1,1).text=str(row['Score'])
docu.add_picture(imgname)
docu.save('studentsReport.docx')
print('finish')

运行结果

c:\Users\ASUS\Desktop\MLCode\report.py'
finish


在目录下都有新建文件:

以上为自动化办公的入门操作学习

Python入门到实战(五)自动化办公、pandas操作Excel、数据可视化、绘制柱状图、操作Word、数据报表生成、pip install国内镜像下载相关推荐

  1. Python自动化办公,根据excel表格批量获取图片插入word

    初学python 最近因为工作需要大量导入图片至word,学习了大佬们的代码后自己写了段 我的表格第一行默认标题,所以均从第二行开始读取 初学者,代码格式比较乱 表格的形式 import docx f ...

  2. python自动化办公入门故事教案_Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  3. 怎样用python自动化办公_会python基础,如何学习自动化办公?

    Python 自动化,爽爽的解决 本课程完全让你摒弃重复率高,机械操作的劳动,解放双手,自动化办公,比如Excel表的各种计算,合并,比对,尤其是跨表,大量数据的,连Excel打开都费劲的,Pytho ...

  4. 怎么学习python自动化_会python基础,如何学习自动化办公?

    这个我会! 我也是在有了点python基础之后开始学习自动化办公的,毕竟有时候要处理的表格太烦人了,重复的操作太多,所以我也想到了学习使用python来进行自动化办公. 说到自动化办公.无非就是对一些 ...

  5. python接口测试框架实战与自动化进阶(三)

    python接口测试框架实战与自动化进阶 一.持续集成 1.持续集成环境搭建 1)安装Jenkins 官网下载后直接安装:https://jenkins.io/ 终端直接安装及启动:java -jar ...

  6. 《零基础掌握 Python 入门到实战》笔记

    Python 零基础掌握 Python 入门到实战笔记 文章目录 Python 内置对象类型 基本交互语句 常用内置函数 整数与浮点数 基本数学运算 高级数学运算 字符串 序列 索引 切片 成员函数 ...

  7. Python量化交易实战-41EasyTrader自动化模拟真实交易

    B站配套视频教程观看 EasyTrader自动化模拟真实交易 来到官方文档的使用部分: https://easytrader.readthedocs.io/zh/master/usage/ 一.用法 ...

  8. python工资自动发放_python自动化办公--协助财务自动发送工资条

    1.申请163账号,开通客户端stmp协议获得登录密码如:"VYCSWZBGIWMQVNGG" 2.代码如下: #!/usr/bin/python#-*- coding: UTF- ...

  9. python sqlserver 列名_报表自动化,三流用Excel,二流用Python,一流用它

    从事数据工作的人都知道,企业每天都要做很多报表,这个过程当中会涉及到很多手工操作和常规性报表.为了减少人工介入,节省工作时间,我们会想办法将一部分操作用工具或代码来替代,这个过程就称为报表自动化. 报 ...

最新文章

  1. oracle9i安装不上,终于成功安装oracle9i了(Cent OS 4.0+oracle9204)
  2. 【每日一算法】行星碰撞
  3. android44投屏开发,ARDC(B1425)android投屏利器,开发好帮手.zip
  4. 两个EdgeNode夹一个Node
  5. 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
  6. 怎样查找自增列主键的id
  7. 山东外贸职业学院王彩霞老师网上考试系统及c语言考试题库》,2019年山东外贸职业学院单独招生考试测试内容及安排...
  8. 打印机的共享设置方法
  9. 如何安装python解释器_python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器...
  10. cmd链接php mysql数据库_php连接mysql数据库_cmd连接mysql数据库 - MySQL最新手册教程 - php中文网手册...
  11. Win10预览版之BUG
  12. C语言实验课基础考点1.0
  13. flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
  14. logo设计灵感的创意网站
  15. 最适合发朋友圈的句子
  16. 职业向导 - 面试题目汇总(嵌入式篇)
  17. vue el-table的合并单元格与拆分单元格
  18. 029_《编程高手箴言》
  19. 互联网呼唤版权社会化服务
  20. java应用的开发步骤_简述一下Java应用程序的开发步骤

热门文章

  1. Linux----生产者与消费者
  2. 电脑诊断出策略服务器未运行,IE浏览器打不开,诊断策略服务未运行
  3. 笨鸟的生活(小白的学习日常)
  4. oracle consistent gets,Oracle数据库consistent gets使用的特例
  5. Mycat从入门到放弃
  6. cascade down_cascade是什么意思_cascade的翻译_音标_读音_用法_例句_爱词霸在线词典...
  7. Windows Phone 游戏 Galaga Legions DX 去除 XBL 服务
  8. 域环境users提权调用lsrunase.exe 批处理完成安装字体
  9. 广告营销核心干货——《我的营销心得》读书笔记2900字
  10. 春节红包活动如何应对10亿级流量?