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

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   119
1   2   李四   20
2   3   王五   21

In [7]: df=df.set_index('id')

In [8]: df
Out[8]:
   name  age
id
119
2    李四   20
3    王五   21

In [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   119
1   2   李四   20
2   3   王五   21

In [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   119

Pandas绘制数据

学习Pandas绘制柱状图

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

import pandas as pd
import matplotlib.pyplot as plt

students=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()

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

import pandas as pd
import matplotlib.pyplot as plt

students=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 plt

stu=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-docx
  Downloading 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-docx
  Downloading 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-docx
  Building wheel for python-docx (setup.py) ... done
  Created wheel for python-docx: filename=python_docx-0.8.10-py3-none-any.whl size=184495 sha256=63b082dbe118cb159bfba8e59a24cb64c1c7e8c4ceebc7477b2d6d1418d94ffb
  Stored 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)? y
  Successfully 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 lxml
  Downloading 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 plt

imgname='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

在这里插入图片描述
在目录下都有新建文件:
在这里插入图片描述
以上为自动化办公的入门操作学习

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 要绘制Python二手房数据的户型分布图,我们可以使用Matplotlib和Seaborn这两个Python数据可视化库来实现。 首先,我们需要导入需要的库,包括Pandas用于数据处理,Matplotlib和Seaborn用于数据可视化: ``` import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ``` 接下来,我们可以加载二手房数据集,并筛选出户型的列: ``` data = pd.read_csv('二手房数据.csv') 户型 = data['户型'] ``` 为了绘制户型分布图,我们可以使用Seaborn中的countplot函数: ``` sns.countplot(x=户型) plt.xlabel('户型') plt.ylabel('数量') plt.title('二手房户型分布图') plt.xticks(rotation=45) plt.show() ``` 这段代码将根据户型列的取值数量绘制一个柱状图,横坐标为户型的值,纵坐标为数量。我们还可以设置横坐标标签、纵坐标标签和图表标题,使其更加清晰易懂。为了防止横坐标标签过于拥挤,我们可以通过`rotation`参数来旋转横坐标标签。 最后,我们通过`plt.show()`来显示图表。 综上所述,以上代码可以使用Python绘制二手房数据的户型分布图。 ### 回答2: Python是一种强大的编程语言,它支持各种数据处理和可视化操作。用Python进行二手房数据可视化绘制绘制户型分布图非常简单。 首先,你需要获取二手房数据,并将其储存在一个适当的数据结构中,比如列表或者Pandas的DataFrame。每个数据项应该包含有关房屋的各种信息,例如户型、面积、价格等。 接下来,你可以使用Python中的各种数据可视化库来绘制户型分布图。其中最常用的库之一是Matplotlib,它提供了各种绘图功能,包括直方图、柱状图和饼图等。 如果你想要绘制户型的频率分布图,可以使用Matplotlib的柱状图功能。你可以将不同户型作为X轴,每个户型在数据中的数量作为Y轴。通过将数据传递给matplotlib.pyplot的bar函数,你可以生成一个美观的柱状图。你还可以添加标签和标题来增加图表的可读性。 另外,如果你想要绘制户型的相对比例图,可以使用Matplotlib的饼图功能。你可以计算每个户型在数据中的占比,并将其作为数据传递给matplotlib.pyplot的pie函数。你还可以添加图例和标签来更好地展示不同户型的比例关系。 除了Matplotlib,还有其他一些Python库也可以用于二手房数据可视化,例如Seaborn和Plotly。这些库提供了更多的可视化选项和样式,可以让你创建出更丰富和交互式的图表。 总而言之,使用Python进行二手房数据可视化,并绘制户型分布图是相对简单的。只需几行代码,你就可以创建出漂亮和易于理解的图形,从中获取对二手房市场的洞察。 ### 回答3: 要实现python二手房数据可视化绘制户型分布图,可以采用以下步骤: 1. 数据收集:首先,需要收集二手房的相关数据,包括房屋的户型信息。可以通过爬取房屋交易网站或者使用开放的二手房数据API来获取数据。 2. 数据处理:将获取到的数据进行处理,提取出户型的信息,并进行统计。 3. 数据可视化:使用Python数据可视化库,例如Matplotlib或seaborn,绘制户型分布图。可以选择柱状图、饼图等方式来展示不同户型的数量分布。 4. 图表设计:设置图表的标题、坐标轴标签以及图例等信息,使得图表更加清晰易懂。 5. 图表展示:将生成的户型分布图保存为图片或者直接在程序中展示出来。 6. 结果分析:根据生成的户型分布图,可以观察不同户型的数量占比,并分析市场上各种户型的热门程度。 通过以上步骤,可以利用Python实现二手房数据可视化绘制户型分布图,帮助我们更加直观地了解二手房市场的房型结构,并为房屋购买决策提供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写程序的程序员.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值