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. leetcode70 爬楼梯 Python

    组合数学Fibonacci 例3.4.1   (上楼梯问题)某人欲登上n级楼梯,若每次只能跨一级或两级,问他从地面上到第n级楼梯,共有多少种不同的方法? (解)设上到第n级楼梯的方法数为an.分类统计 ...

  2. windows github 下载慢 修改hosts

    参考:Github访问速度慢和下载慢的解决方法 [Github]windows上访问github慢的解决方法 方法:绕过dns解析,在本地直接绑定host,该方法也可加速其他因为CDN被屏蔽导致访问慢 ...

  3. 电脑忘记WiFi密码了,但又想知道,该怎么办?

    如何查看电脑已经连过的WiFi的密码? 你有没有遇到这样的情况,电脑之前连过的WiFi,正好手机也想连此WiFi,但是忘记密码了,没有WiFi的手机怎么能叫手机呢?.下面我们来看看如何查看已连接过的W ...

  4. 软件推荐----数据库数据处理Navicat Premium

    一般情况下,企业对数据库的管控很严,通常管控分成以下: 对整台服务器管理权限,如:操作系统Administrator+SA 对单个数据库(Oracle的表空间)完全权限,如:SQL DB_Owner ...

  5. mybatis与Spring

    提问1:如果没有spring-mybatis,我们如何在spring中使用定义bean,如何使用事务? mybatis-Spring为我们带来多种方式的Mapper接口的注册,扫描,识别. 如果不使用 ...

  6. 用antd和webview打造一款大数据客户端程序

    要想提高工作效率,必须得有好的工具.大数据有很多组件,但是邪了门儿的就是,竟然没有一个好用的客户端程序. 没办法,我只好用antd+webview自己做了一款跨平台的桌面应用. 先看下效果. 这是gi ...

  7. Shiro与基本web环境整合登陆验证实例

    1. 用maven导入Shiro依赖包 <dependency> <groupId>org.apache.shiro</groupId> <artifactI ...

  8. WordPress版微信小程序安装使用说明

    昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...

  9. yml文件搞一波

    引用https://www.cnblogs.com/zslli/p/8717483.html https://www.cnblogs.com/baoyi/p/SpringBoot_YML.html 划 ...

  10. java 英文单词拼写纠正框架(Word Checker)

    Word Checker 本项目用于单词拼写检查. 项目简介 word checker 用于单词拼写检查. Github 地址 特性说明 支持 i18n 错误提示支持 i18N 支持英文的单词纠错 可 ...