Python自动化办公指南-1

作为一个学习了很长时间的Python的我来说,Python 他能干什么,其实在铺天盖地的广告,已经告诉你它能干什么了。但是我告诉你的是,你通过广告接触的python 速成小课,你学完它之后,你并不能处理任何工作上的问题.

Python的精髓在于:它有丰富的模块库,我们的课程是重点拿爬虫来讲模块库的调用。就像一个app商店,全球开发者共同维护,任何人都可以调用,学会模块调用,才真正打开了python的大门。

编程在于积累,在于积累前辈们的代码,以及去思考如何创新自己的代码。 

其实大多数自动化办公的人,就是处理Excel 等数据。

处理Excel 用到的模块这里我给大家总结,希望大家不要走弯路

1、openpyxl  

其实大多数这两个情况下就可以了。首先我们介绍的是openpyxl 它能对Excel 做什么。



2、Pandas  

pandas是一种快速,强大,灵活且易于使用的开源数据分析和处理工具,它

建立在Python编程语言之上。


案例1:租房数据案例分析

1、读取Excel 中的租房数据

import pandas as pd

excel_path = 'E:\\Python_Office_Auto\\Day7\\house.xlsx'

houses = pd.read_excel(excel_path)

2、查看Excel中的数据有多少行,多少列

print(houses.shap)

# (9869行, 18列)


3、通过head打印出前5行数据

print(houses.head())

'''        楼盘名称  ...              标签0    北京花园亮马桥朝阳公园南北四居燕莎友谊商城手慢无  ...        采光好/南北通透1        传媒第二外国语学院南门旁三间房南里7号院两居室  ...             NaN2              荣尊堡多套两居出租,车位充足,看房随时  ...             NaN3  六号线黄渠柏林爱乐精装一居家电齐全随时看房包物业取暖  ...  首次出租/全装全配/交通便利4       朝庭104平两居室精心装修看房效果很好随时起租  ...             NaN

'''

#说明:当一个Excel 数据,非常大的时候,你手动打开一个Excel 文件去了解它,那是真的太难受了。打开巨大Excel表格都晓得。 如果你的列特别多,使用pandas查询数据的时候,会默认隐藏中间的列。

4、columns 来查询列名。

print(houses.columns)

'''Index(['楼盘名称', '租赁方式', '户型', '面积', '朝向', '房租', '更新时间', '采集时间', '城市', '区域',       '街道或片区', '地段', '地址', '公交站', '主图链接', '楼盘详情链接', '页面网址', '标签'],      dtype='object')'''


说明:我们可以很清晰看到Excel中每个列名的名字。然后我们就可以通过列名轻松加愉快的去访问他们了。


也可以通过负索引,查询出最后一列的名字

houses.columns[-1]#  '标签'

5、筛选数据,查看朝向中,朝北,朝南的数据,并且只显示列(楼盘名称、面积)即可

houses.loc[houses.朝向.isin(['朝北', '朝南',]), ['楼盘名称','面积']].head(5)

'''                              楼盘名称面积0    北京花园亮马桥朝阳公园南北四居燕莎友谊商城手慢无  268㎡1        传媒第二外国语学院南门旁三间房南里7号院两居室   65㎡3  六号线黄渠柏林爱乐精装一居家电齐全随时看房包物业取暖   55㎡5                       周庄嘉园东里次卧出租   18㎡6           工体西里朝南精装两居三里屯朝阳门东四十条   78㎡'''


通过筛选,一下子就能得到我们想要的数据。是不是非常简单,快来尝试一下把。


数据可以添加我们的QQ学习交流群367203382,找群主获取。

6、处理带有字符串数字的钱

houses.房租.head()'

''0    35000元/月1     4300元/月2    15000元/月3     5500元/月4    13500元/月Name: 房租, dtype: object'''houses.房租= houses.房租.str.split('元',expand=True)[0].astype("int")houses.房租.head()'''0    350001     43002    150003     55004    13500Name: 房租, dtype: int32'''

说明:我们要统计金额最大的数字,带有元/月的字符串是无法进行统计的。

所以我们要把元/月给他过滤掉。 使用split函数即可。


如果后续有更加过滤话的需求,字符串的函数已经无法满足你,可以结合lambda函数来进行过滤。可以达到同样的效果。


houses.房租= houses.房租.apply(func = lambda x:int(x.split('元')[0]))


7、获取房租最贵的前5行数据

df_max_5 = houses.sort_values('房租').tail(5)

楼盘名称面积房租

2416后海 什刹海 恭王 府柳荫街大型精装四合院 带车库 接待会所  1000㎡   400000

5190后海什刹海精装四合院 带车库 露台 古香古色  1000㎡   416700

5136后海什刹海精装四合院 带车库 露台 古香古色  1000㎡   416700

5135西城区后海什刹海四合院专业接待商务会所四合院出租  2500㎡   625000

4467金融街 阜成门 西四 豪华型正规三进四合院  6400㎡  1900000



说明我们使用sort_values函数,让我们的房租,先排好序。默认是升序。就是

第一行最小,1,2,3,4. 。当我们的价格按照小学生的身高一样排好之后。身高最高的5位,

我们走到后排。从结尾开始数倒数,获取5个学生不就可以了吗。道理就是这样简单。

这里我们使用tail函数,实现这样的功能。、


因为我们这是真实数据,可以看得出来,有钱人的生活我们是真的不懂。

1百九十万 每个月的四合院,有的人租下来可能就是单纯为了睡觉。


8、获取房租最便宜的前5行数据

df_min_5 = houses.sort_values('房租').head(5)

df_min_5.loc[:,['楼盘名称','面积','房租']]

楼盘名称面积房租

9616北京时代广场 全新家电 家电齐全 正规居室 卧室南向  11㎡  1000

8660              1000大开间,燕郊租房都可以联系我  42㎡  1000

9617北京时代广场 一客一锁 精装全齐 配套齐全 卧室南向  11㎡  1000

8701燕郊开发区,燕顺路,星河皓月  64㎡  1000

9188个人合租,无中介费,中介勿扰,传销勿扰,押一付一,次卧600  15㎡  1000


说明,如果想取出最便宜的房租,那我们直接使用head数据,提取前5个数据,就行了。

从这里看出来,最便宜的房租1千大洋每个月,最贵的房租1百90万大洋每个月。

从房子的价格就能看出来,离北京越远房租越便宜,离北京越近,房租还在1千的,房间小的已经只能放得下一张床。 数据的真相就是让人头大。


9、统计每个区域发布了多少房租租赁信息

houses.区域.value_counts() 

# 返回区域关联的数据行数,默认降序'''西城      4996朝阳      2040北京周边     739密云       712门头沟      680燕郊       323旅游地产     191延庆        97怀柔        86平谷         5Name: 区域, dtype: int64'''

说明:还有第二种方式,通过分组统计

houses.groupby('区域')[['房租']].count()

房租

区域

北京周边739

密云712

平谷5

延庆97

怀柔86

旅游地产191

朝阳2040

燕郊323

西城4996

门头沟680

10、从数据里,筛选出房租大于28w的数据

houses.loc[houses.房租>=280000,['楼盘名称','面积','房租']].head()

楼盘名称面积房租

995样板间设计 拎包入住+泳池+范思哲和芬迪家具  1500㎡  400000

2351后海什刹海四合院出租  1000㎡  300000

2381后海什刹海四合院出租  1000㎡  300000

2397后海什刹海四合院出租  1000㎡  300000

2416后海 什刹海 恭王 府柳荫街大型精装四合院 带车库 接待会所  1000㎡  400000

说明:通过loc来筛选数据,也可以使用

houses[houses.房租>=280000].head()

可以通过len函数直接获取 大于28w 的房租有多少个

len(houses[houses.房租>=280000])

# 68

房租大于28w每个月的房子往外出租的还真不多。

11、统计比较受欢迎的租金价格

# 统计租金出现的次数

hot_counts = houses.房租.value_counts()

# 统计某一个确定价格的租金出现超过1百50次的

top_counts =  hot_counts[hot_counts >=150]print(top_counts)

'''1800     2578000     19212000    1847000     1821500     1766500     152Name: 房租, dtype: int64'''# 通过索引获取1800 是最受欢迎的价格print(top_counts.index[0]) #输出:1800

说明value_counts是个经常使用的函数,很方便的统计某一列中,某个数值出现了多少次。

我们可以统计出每个月1800的 房租,才是最受欢迎的,因为我们毕竟是最底层的打工人。


还有更多案例均在我们Python学习交流群:367203382

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什刹海地铁附近胡同里平房 优势1.处于老北京特色胡同环境古朴安静,到晚上九/十点后安静得不可思议(po个之前拍的照...
    NancyC阅读 337评论 0 0
  • 孙先生去北京找同行联络感情,顺便充当一下人肉快递机,把文件从北京带回山东。顺便捎上了我这个大闲人。理由如下:把...
    公子麻朵阅读 431评论 0 0
  • 夜莺2517阅读 127,775评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,994评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,629评论 28 53