pandas可以对数据进行整理分析
因为要对excel中的源数据进行分组和处理,所以想到用pandas来处理。试用过确实比自己去读写快捷很多
(实际pandas底层也是用xlrd,xlwt两个第三方包来读取Excel和写文件到Excel中)
 
一、pandas处理的数据结构介绍
1、series结构
该结构类似一个数组
pd.Series([1,2,3,4,5])
 
2、DataFrame
使用DataFrame创造的结果与字典类似,实际是一个key对应的值为series的结构
从excel中直接读出来的数据就是DataFrame结构,以下面例子为例:【d.第一列】能读出第一列的所有值,即后面的数组的值
d=pd.DataFrame({"第一列":[11,22,33,44,55],"第二列":['a','b','c','d','e'],"第三列":"haha"})
d=pd.DataFrame([{"第一列":11,"第二列":'a'},{"第一列":22,"第二列":'b'}])
 
二、基本语法
import pandas as pd
 
1、从文件中读取数据
data_origin = pd.read_excel(f)#从excel中读取数据,也可以通过read_csv()等从其他格式文件中读取数据
 
2、打印数据的长度,excel中有多少行
len(data_origin)
 
3、打印数据的索引
print(data_format.index)#打印索引结果,列出索引范围RangeIndex(start=0, stop=194, step=1)
4、将excel中的数据只取某几个列名下的数据重组
data_format = data_origin[["标题", "解决方案"]]#获得excel第一行的内容为列名的数据,“标题”和“解决方案”为列名
 
5、打印数据的某列结果的值
print(data_origin.标题)#打印dataFrame中某个列的数据,这里打印的第一列为标题的列的数据,也可以用data_origin.A等表达
print(data_format["标题"])
 
6、打印dataFrame数据的列表标题、除标题外的值
print(d.columns)#显示所有的列表索引,对应到excel的标题
print(d.values)#显示除标题行外的值
 
7、将列表数据倒置,横竖转换
print(d.T)
 
8、获得索引值为1到3的值,例子即为第2行到第3行的数据
print(d[1:3])
 
打印第一行的数据
print(d.iloc[1].values) 
 
9、过滤数据
9.1组合过滤:第一列值大于22和第二列值等于c的
print(d[(d.第一列 > 22) & (d.第二列 == 'c')])
 
9.2使用query过滤
print(data_format.query('(解决方案 not in  ["不是BUG","重复BUG","无法重现"] & 创建人 != ("林立星"))'))#这种方案也可行,但是不能直接写变量,比较麻烦
9.3判断值是否在某个数组内用isin()
print(data_format[(data_format.解决方案.isin(invalid_resove))])#判断数据是否在XX区间内
9.4判断值是否不再某个数字内用~
bug_effective = data_format[
(data_format.状态.isin(["已关闭"]) & ~data_format.解决方案.isin(invalid_resove))]
 
10、获得数据的前10行
print(data_format.head(10))#获得dataFrame数据的前10行
11、将结果输出到excel中
使用to_excel()方法
data_effective.to_excel("./解析BUG结果.xls",sheet_name="有效BUG")#这种每次都会覆盖前面保存的sheet的值
直接用上面的方法,向同一个excel中输出时会将excel中原有的sheet覆盖了,可以用下面的方法解决这个问题
with pd.ExcelWriter('./解析BUG结果.xls') as writer:
data_effective.to_excel(writer, '有效BUG')
data_unkown_reslover.to_excel(writer, '未知解决人的BUG')
 
第二种方法:用这种方法主要是因为我的数据结果有的用的插入excel有的是保存的图标,结果不一样
from openpyxl import load_workbook
book= load_workbook('./存在的文件名.xlsx')
writer = pd.ExcelWriter('./存在的文件名.xlsx', engine='openpyxl')
writer.book = book
bug_effective.to_excel(writer, ’sheet的标题')
writer.save()
 
12、过滤字段值不为NAN(空)的结果.notnull()
info[info.重新打开次数.notnull()])
13、将dataFrame存储到文件中时指定列的顺序,使用columns参数值来指定
.to_excel(writer,sheet名,columns=["列名1”,"列名2",”列名3”])
例子:pd.DataFrame(buganalysis_android).to_excel(writer, 'Android端个人BUG',columns=["开发姓名","BUG总数","编码错误","历史遗留","需求变更导致","以后解决","重新打开数量”])
 
14、过滤数据,多个条件组合查询
多个条件用()组合起来,使用&进行与,|进行或
data[(data.修复人.notnull()) & (data.修复人.isin(RD["Android"]) | data.修复人.isin(RD["server"]))]
15、打印DataFrame下的所有列名
print(data.columns.values.tolist())
16、操作数据库
https://www.cnblogs.com/meitian/p/10502657.html

pandas的简单使用的更多相关文章

  1. Windows下下载及安装numpy、pandas及简单应用

    下载numpy 下载地址 https://pypi.python.org/pypi/numpy 进入网站,下载和自己电脑及电脑中安装的python匹配的numpy版本.我的电脑是Win 10 x64位 ...

  2. python pandas模块简单使用(读取excel为例)

    第一步:模块安装 pip install pandas 第二步:使用(单个工作表为例) 说明:如果有多个工作表,那么只要指定sheetname=索引,(第一个工作表为0,第二个工作表为1,以此类推) ...

  3. 3.pandas的简单查询

    知道了基本的pandas的数据结构,就可以进行查询相应的数据了 DataFrame可以看成是一个个的Series组成的一个二维结构,既然如此,就会有从DataFrame里查询Series的方法 从Da ...

  4. 【Python实战】Pandas:让你像写SQL一样做数据分析(二)

    1. 引言 前一篇介绍了Pandas实现简单的SQL操作,本篇中将主要介绍一些相对复杂一点的操作.为了方便后面实操,先给出一份简化版的设备统计数据: 0 android NLL 387546520 2 ...

  5. 我的Pandas应用场景

    声明 工作后,很不幸的成为了团队中的QA.QA这个角色吧,说起来高大上,实际很苦逼,一句话概括一下:吃力不讨好!作为新人,公司每月一分钱没少我,至少现在跟开发的待遇是一样的,所以我还是得兢兢业业的对待 ...

  6. 【译】10分钟学会Pandas

    十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...

  7. 数据分析之pandas教程-----概念篇

    目录 1  pandas基本概念 1.1  pandas数据结构剖析 1.1.1  Series 1.1.2  DataFrame 1.1.3  索引 1.1.4  pandas基本操作 1.1.4. ...

  8. Pandas之Dateframe 实现Excel读取与写入

    目的:有时需对数据进行到出到Excel,直观的给别人参阅,或从Excel中读取数据进行操作和分析依赖库 pandas 可简单的读出和写入 1,根据Excel读取( 需安装xlrd库) import n ...

  9. 基于 Python 和 Pandas 的数据分析(1)

    基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性 ...

随机推荐

  1. Java 锁的学习

    个人学习整理,所有资料均来源于网络,非原创. 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用.请求与保持条件(Hold and wait):已经得 ...

  2. selenium 目录结构解释

    common目录         定义了通用的异常类 webdriver目录 android.backberry.chrome.edge.firefox.ie.opera.phantomjs.safa ...

  3. 隐马尔可夫模型(HMM) 学习笔记

    在中文标注时,除了条件随机场(crf),被提到次数挺多的还有隐马尔可夫(HMM),通过对<统计学习方法>一书的学习,我对HMM的理解进一步加深了. 第一部分 介绍隐马尔可夫 隐马尔可夫模型 ...

  4. 正则表达式与Python中re模块的使用

    正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...

  5. qcom,msm8996-pinctrl.txt

    Qualcomm Technologies, Inc. MSM8996 TLMM block This binding describes the Top Level Mode Multiplexer ...

  6. New Journey Prepare

    1. 车载USB充电器. 2. 轮胎检测,备胎充气. 3. 给刹车片加润滑油. 3. 给娃办身份证. 4. 取公积金. 5. 入职准备材料.

  7. Android 开发 实现文本搜索功能

    核心逻辑方法: /** * 搜索item * @param searchContent 需要搜索的文本内容 */ public void searchItem(String searchContent ...

  8. mysql python 交互

    一.安装 sudo apt-get install pymysql sudo pip3 install pymysql Connection对象 用于建立与数据库的连接 创建对象:调用connect( ...

  9. 在云主机上基于nginx部署基于Flask的网站服务器 (自己部署 )

    1.申请云主机 a.阿里云 (注意:阿里云的服务器需要手动添加安全规则使能80端口) b.腾讯云 2.把网站服务器程序拷贝到云主机 3.远程登录云主机 4.解压网站服务器程序 yum install ...

  10. Visual Studio中定义OVERFLOW不能用

    在Visual Studio中对OK.ERROR.OVERFLOW进行宏定义,但只有OVERFLOW不能正常使用为什么呢? #define OK 1: #define ERROR 0: #define ...