当前位置: 首页 > news >正文

山东助企网站建设宁波百度关键词推广

山东助企网站建设,宁波百度关键词推广,外贸网络营销如何选取关键词,什么是个人网站“ 以后数据处理#xff0c;都用pandas”01 面临问题作为运维人员#xff0c;每周要统计很多数据#xff0c;特别是周四写周报的时候#xff0c;基本要花半天时间。既然已经学了Python#xff0c;那就试试优化它。以统计不同厂家、不同设备类型告警量为例。需要将多份类似…“ 以后数据处理都用pandas”01 面临问题作为运维人员每周要统计很多数据特别是周四写周报的时候基本要花半天时间。既然已经学了Python那就试试优化它。以统计不同厂家、不同设备类型告警量为例。需要将多份类似表格中的 “厂家-设备类型” Sheet数据合并、处理、汇总该sheet的数据格式如下期望按照厂家、设备类型汇总告警量并进行分析。由于部分厂家、设备类型可能缺失导致无法对齐无法自动相加。又是常态化重复工作需要自动化解决方案。02怎么办Python提供很多强大的数据分析相关的库如numpy、pandas等。下面就看看pandas如何帮助我们实现转型吧。pandas读取excelimport pandas as pd #定义待读取的文件名 filename1 全量告警_38AB1AE7.xlsx filename2 全量告警_964C9DCF.xlsx #使用pandas的函数读取excel当前目录直接写文件名即可可以有很多参数这里指定所需sheet df1 pd.read_excel(filename1,sheetname厂家-设备类型) df2 pd.read_excel(filename2,sheetname厂家-设备类型)以上代码可以读取两个excel文件。通过pandas.head() 可以显示前几行数据快速查看DataFrame的格式如列名数据类型等判断是否正确载入数据。pandas按照特定列合并处理两个df如何按照厂家和设备类型对告警量进行累加呢就是按照“厂家”和“设备类型”两列进行处理。最容易理解的办法就是循环通过遍历所有厂家和设备类型组合然后将每个df对应的值求和。首先要知道两个文件的最大厂家、设备类型集合然后再遍历。#获取两个文件的最大厂家、设备类型集合 cjlx1 [tuple(df1.loc[i][[厂家,设备类型]]) for i in df1.index] cjlx2 [tuple(df2.loc[i][[厂家,设备类型]]) for i in df2.index] cjlx set(cjlx1cjlx2) #遍历最大设备类型集合求得合并告警量 rows [] #输出列表集合可以转换为DataFrame for i in cjlx: #遍历最大厂家、类型集合cj i[0] #获取厂家名称lx i[1] #获取设备类型if i in cjlx1: #如果该厂家类型对在文件1中取得对应告警量,否则告警量为0num1 df1[(df1[厂家] cj) (df1[设备类型]lx)][告警量].iloc[0]else:num1 0if i in cjlx2:num2 df2[(df2[厂家] cj) (df2[设备类型]lx)][告警量].iloc[0]else:num2 0 num num1 num2 #两个告警量相加row [cj,lx,num] #生成新的一行数据rows.append(row) #追加到输出列表 data pd.DataFrame(rows,columns [厂家,设备类型,告警量]) #转换为DataFrame输出data已经是汇总后的数据可以用代码检查下。In[112]: len(df1),len(df2),len(data) #In表示输入冒号后才是真实代码 Out[112]: (71, 78, 80) In[113]:data.head() Out[113]: 厂家 设备类型 告警量 0 CISCO 交换机 2021 1 东信 HOST 56 2 东信 交换机 16 3 中兴 HOST 182 4 爱立信 HSS_SLF 2可以发现原始两个文件一个有71行数据一个78行数据合并后数据80行。Pandas优化处理Pandas是一个非常优秀的数据处理库实现上述功能肯定不用这么复杂。自带的函数可以快速合并、规整两个DataFrame。主要有append、merge和concat等操作。append可以在df后添加行或者另一个df。对合并后的df3进行分组groupby处理按照告警量列进行求和分组键会作为index需要提取出来作为新的一列In[125]:df3 df1.append(df2) In[125]:len(df1),len(df2),len(df3) #df3的行数是df1 和df2的和 Out[125]: (71, 78, 149)merge通过一个或多个键列名将行连接起来。支持多种连接方式左连接右连接等类似数据库join操作。其中on表示用哪些键连接起来how表示连接方式。In[135]:df4 pd.merge(df1,df2,on[厂家,设备类型],how outer) In[136]:df1.shape,df2.shape,df4.shape, #可以发现df4是80*4,其中80行已经是最大集合是我们想要的结果 Out[136]: ((71, 3), (78, 3), (80, 4)) In[137]:df4.head() Out[137]: 厂家 设备类型 告警量_x 告警量_y 0 CISCO HOST 16.0 1.0 1 CISCO 交换机 1484.0 537.0 2 CISCO 路由器 93.0 152.0 3 IBM HOST 702.0 745.0 4 JUNIPER 路由器 7.0 6.0 其中告警量_x,告警量_y是原先两个告警量相同列名会自动增加_x和_y以便区分。接下来只需将这两列相加即可。df4[告警量] df4[告警量_x] df4[告警量_y]这样直接相加会有问题存在nan值问题某些厂家设备类型数据缺失。需要在相加之前进行处理。将nan值替换为0再求和。优化后代码如下#使用pd.merge() 快速连接 data pd.merge(df1,df2,on[厂家,设备类型],how outer) #连接两个df data data.fillna(0) #用0替换nan值 data[告警量] data[告警量_x] data[告警量_y] #两个告警量相加得到新的一列告警量 data data[[厂家,设备类型,告警量]] #只选取我们想要的三列以上结果和循环遍历结果一致。Pandas文件保存Pandas可以非常方便将文件保存为各种格式如df.to_csv()、df.to_excel()。建议直接使用to_csv简单快速。data.to_csv(out.csv,encoding gbk,index False) lsC:Userszhuf0Documentsrepositorypythondemo 的目录2018/04/04 08:44 DIR . 2018/04/04 08:44 DIR .. 2018/04/04 08:44 521 out.csv可以发现当前目录已经有out.csv。其中encoding设置了编码方式、index可以设置是否保存索引。代码优化上面已经实现了核心功能下面将代码优化一下以便复用。优化1 基本功能函数化编写一个函数输入两个df返回求和后df。def get_df_sums(df1,df2):if df1.empty: #检查其中一个df为空return df2elif df2.empty:return df1else:data pd.merge(df1,df2,on[厂家,设备类型],how outer) #连接两个dfdata data.fillna(0) #用0替换nan值data[告警量] data[告警量_x] data[告警量_y] #两个告警量相加得到新的一列告警量data data[[厂家,设备类型,告警量]] #只选取我们想要的三列return data优化2 自动读取多个文件一般情况下待汇总的文件不止两个我们可以使用Python脚本自动读取某个特定路径下所有文件。import os path rC:UserstestDocumentsrepositorypythondemo out pd.DataFrame() for filename in os.listdir(path):#遍历指定路径的所有文件名if 全量告警 in filename: #选择指定文件待读取filename pathfilename #获取绝对路径df1 pd.read_excel(filename,sheetname厂家-设备类型) #读取该sheetout get_df_sums(out,df1) #和之前的out累积求和类似 sumsumi只需要将待汇总的文件放到指定目录即可输出out.csv。优化3 排序后保存Pandas 有很强大的排序功能。sort_values如按照告警量排序In[164]out out.sort_values(by 告警量,ascending False) #按照告警量降序排列 In[164]:out.head() Out[164]: 厂家 设备类型 告警量 7 爱立信 BSC 481307.0 65 中兴 MME 163725.0 14 爱立信 MME 99553.0 13 爱立信 MGW 37488.0 16 爱立信 MSC_Server 24683.0留个问题思考能否分组排序按厂家分组如爱立信然后组内告警量降序排列。厂家的排序方式按照该厂家的最大告警量排序而不是厂家的名称。如爱立信后是中兴。最终代码最终优化后脚本为,保存为pandas_demo.py文件import pandas as pd import os #给定两个df返回求和后结果 def get_df_sums(df1,df2):if df1.empty: #检查其中一个df为空return df2elif df2.empty:return df1else:data pd.merge(df1,df2,on[厂家,设备类型],how outer) #连接两个dfdata data.fillna(0) #用0替换nan值data[告警量] data[告警量_x] data[告警量_y] #两个告警量相加得到新的一列告警量data data[[厂家,设备类型,告警量]] #只选取我们想要的三列return data #给定路径path求和指定格式全部文件 def get_all_path(path):out pd.DataFrame()for filename in os.listdir(path):#遍历指定路径的所有文件名if 全量告警 in filename: #选择指定文件待读取filename pathfilename #获取绝对路径df1 pd.read_excel(filename,sheetname厂家-设备类型) #读取该sheetout get_df_sums(out,df1) #和之前的out累积求和类似 sumsumiout out.sort_values(by 告警量,ascending False)return out#作为主程序运行 if __name__ __main__:path rC:UserstestDocumentsrepositorypythondemoout get_all_path(path)out.to_csv(out.csv,encoding gbk,index False) #保存脚本使用只要我们将待处理的文件放到该目录然后命令行运行该脚本即可。执行 python pandas_demo.py 没有任何提示说明成功。至此在公司IT转型过程中我用Python完成了第一个小项目提升自我工作效率省下的时间可以继续学习了。03 为什么为什么要这么做职场学习就是要提升生产力将日常重复性低价值工作交给机器。Pandas是一个强大的数据分析第三方库Anaconda已经自动携带无需安装只需import导入即可使用。一般用以下语法import pandas as pdPandas提供两种常用的数据结构Series和DataFrame。其中Series可以看作一行或一列数据DataFrame是一个二维表格数据和excel表格类似有行索引和列索引。Pandas提供很多便捷的函数用来创建、处理、保存DataFrame。从office的Excel表格切换到Pandas非常容易理解。在自动化、智能化演进过程中公司要转型个人也要。从身边小事做起代码让工作更美好。04 其他选择有没有更好的选择除了mergeconcat可以实现类似的连接然后再进行处理。如有兴趣可以思考。脚本可以继续优化进一步优化将路径作为参数提供指定输出目录增加一些提示性输出增加脚本稳健性。pandas海量数据处理优化大数据处理是一个经典问题如何优化效率已经是编码之道。暂时能力有限不能涉及。很多牛人已经完成优化还有很多类似的第三方库如datatable等。作为初学者选择一个合适的先入门。如果主要工作内容是大数据处理与分析那么后面慢慢深入研究而得道。期待你的分享。欢迎大家留言讨论。下篇我会继续分享第二个小项目实践欢迎关注。
http://www.pierceye.com/news/189762/

相关文章:

  • 宜昌市夷陵区建设局网站培训推广 seo
  • 怎样做安居客网站用幽默的语言来形容网站开发
  • 宜昌网站建设选择宜昌慧享互动手机怎么防止网站跳转
  • 本地的上海网站建设公司汽车租赁网站设计
  • 在哪下载免费的英文版网站模板建站 网站程序有哪些
  • 网页前端做购物网站的实训报告网络营销推广是做什么的
  • 广东专业网站建设效果wordpress搜索框插件
  • 茂名建站模板搭建岳阳优化营商环境
  • shopify网站建设郑州机械网站制作
  • 郑州正规公司网站建设服务国内专业建站平台
  • 做财经直播网站php网站做安卓客户端
  • 视频直播网站开发运营步骤十大免费erp软件
  • 域名备案和网站备案有什么不同wap 网站
  • 没备案的网站百度收录博客营销
  • 网站开发新技术wordpress 搜索词调用
  • 凡科手机建站教程wordpress 搜索引擎
  • asp企业网站源码下载免费ppt模板公众号
  • 西斗门的网站建设短网址生成器有哪些
  • 一站式织梦网站模板工信部备案查询网官网
  • 网站导航做外链桂林seo
  • 青岛网站建设q479185700棒软件开发者是指
  • 福永公司网站建设空间网站链接怎么做
  • 百度的企业网站谷歌浏览器下载安卓版
  • 网站建设总体情况网站设计宁波
  • 西宁做网站_君博示范360建筑网会员
  • 做DJ网站违法吗汕头seo网站推广
  • 上海网站建设网站宁波网站模板哪家性价比高
  • 珠海专业做网站制作做网站网站的代理算网站罪吗
  • 建设局网站简介通信建设网站
  • php做网站用什么开发工具大专软件技术工资一般多少