网优工程师学python之excel数据透视

声明:优化的项目越来越难做,使用python工具助理于优化项目,减少重复工作。减少加班啊!希望通信相关的同学们一起交流学习!本人刚开始学习,不知地方请大家指出谢谢。

excel透视在网优工作中的使用很多,指标的统计,参数的统计等。因此今天在网上特意查找和透视相关的python程序。发现确实方便的多。

1.本次使用的是现网的工程进行试验操作的,主要使用的包是pandas和numpy这两个包,这两个包在优化工作用的还是比较多的。
1).NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。·
2).Pandas(Python Data Analysis Library)基于Numpy构建,让基于Numpy的应用更简单,被广泛应用于金融行业,流行的数据分析工具;
对两个包感兴趣可以到网上查找,本次pandas主要用来读取excel和对Excel透视,numpy是用来构造函数。

# -*- coding: utf-8 -*
import  pandas as pd
import  numpy  as np
def prov():
   df = pd.read_excel('拆分后.xlsx',sheet_name='总表')
   data = df.head()
   print("获取前5行数据:\n", format(data))
  # res = pd.pivot_table(df,index=['区/镇','场景'],values=['PCI','GroudHeight'],columns=["基站状态"],aggfunc=[np.mean],fill_value='空',margins=True)
   res = pd.pivot_table(df, index=['区/镇', '场景'], values=['PCI', 'GroudHeight'], columns=["基站状态"], aggfunc={'PCI':np.amax,'GroudHeight':np.mean},fill_value='空', margins=True)
   print(res)
   ss = res.query('场景 == ["市区"]')
   print(ss)
ff=prov()

在这里插入图片描述
关键代码详细解释:
1.读取excel
df = pd.read_excel(‘拆分后.xlsx’,sheet_name=‘总表’)
read_excel()函数,不加sheet_name,默认第一个sheet,sheet_name定义读取哪个sheet,可以是sheet名或编号。
2.透视部分,关键部分
使用的函数是pivot_table(),如下例子
1.第一个参数是df是之前读取的表;
2.第二个参数index透视表的列,按照这一列进行透视,对于excel透视的行。
3.第三个参数values 是需要计算的值,对于excel透视的值。
4.第四个参数columns 列显示,不做计算,对应的excel的列。
5.第五个参数aggfunc是values参数计算方式,例子中调用的numpy包中的函数。可以分别计算多个values.
6.第六个参数fill_value 透视结果中空值填充数值。
7.margins=True 相当于 excel透视结果求和。

res = pd.pivot_table(df, index=[‘区/镇’, ‘场景’], values=[‘PCI’, ‘GroudHeight’], columns=[“基站状态”], aggfunc={‘PCI’:np.amax,‘GroudHeight’:np.mean},fill_value=‘空’, margins=True)
3.query()函数,是对透视结果进行过滤,对values进行筛选。
ss = res.query(‘场景 == [“市区”]’)

在这里插入图片描述现在遇到问题,输出结果怎么写到excel。大家有知道告诉下我谢谢!

发布了2 篇原创文章 · 获赞 0 · 访问量 34

猜你喜欢

转载自blog.csdn.net/weixin_41068323/article/details/105668576