python数据结构:pandas(3)
一、pandas数据操作:
1.处理缺失数据
(1)判断是否存在缺失值
ser_obj.isnull(),df_obj.isnull()
(2)dropna:丢弃缺失数据
(3)fillna:填充缺失值
2.常用的统计计算
import numpy as np
import pandas as pd
df1 =pd.DataFrame(np.random.randn(,),columns=['a','b','c','d'])
print(df1)
(1)sum,mean,max,min.......
(2)axis=0按照列统计,axis=0按照行进行统计
#求和,求出各列的最大值,默认是axis=的方向
print('df1.sum=\n',df1.sum())
#打印出df1的最大值,求出df1各列的最大值
print('df1.max()=\n',df1.max())
求出水平方向各列的最大值
print('水平方向的最大值=\n',df1.max(axis=1)) #求出水平方向各行的和
print('水平方向各行的和',df1.sum(axis=1))
print('各个值的描述为:\n',df1.describe())
(3)skipna排除缺失值,默认为True
(4)idmax,idmin,cumsum
(5)describe()描述多个数据
二、pandas层级索引
1.层级索引
(1)MultiIndex对象
import numpy as np
import pandas as pd #对于多层索引的数据结构,先写外层索引,再写内层索引
ser_obj = pd.Series(np.random.randn(),index=[['a','a','a','b','b','b','c','c','c','d','d','d'],
[,,,,,,,,,,,]
])
print(ser_obj)
a 0 -0.238233
1 1.833810
2 0.440786
b 0 -0.061261
1 1.429524
2 0.472883
c 0 -0.509399
1 1.463129
(2)选取子集
外层选取 ser_obj['outer_label']
内层选取 ser_obj[:,'inner_label']
#索引
print('索引为',ser_obj.index)
print('索引的类型:\n',type(ser_obj))
索引为 MultiIndex(levels=[['a', 'b', 'c', 'd'], [0, 1, 2]],
labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])
索引的类型:
<class 'pandas.core.series.Series'>
#外层的选取,选取c这一层
print(ser_obj['c']) #内层的选取
print(ser_obj[:,2])
(3)常用于分组操作透视表生成等
(4)交换分层次序
swaplevel
#交换层级索引的顺序,将0,,2作为外层索引,将a,b,c,d作为内层索引
print(ser_obj.swaplevel())
0 a -0.692477
1 a 1.646162
2 a -1.065838
0 b -0.427297
1 b 3.000122
2 b -0.247474
0 c -0.601376
1 c -0.109477
2 c -0.607528
0 d 0.776865
1 d 0.886385
2 d -0.837686
#交换层级索引并排序分层
print(ser_obj.swaplevel().sortlevel())
(5)排序分层:sortlevel()
#交换层级索引并排序分层
print(ser_obj.swaplevel().sortlevel())
三、Pandas分组与聚合
1.分组(groupby)
(1)对数据集进行分组,然后对每组数据进行统计分析
(2)SQL能够对数据进行过滤,分组聚合
(3)pandas能够利用groupby进行更加复杂的分组运算
(4)分组运算的过程
split->apply->combine
拆分:进行分组的根据
应用:每个分组的计算规则
合并:把每个分组的计算结果合并起来
2.聚合(aggregation)
(1)数组产生标量的过程,如mean(),count()等
(2)常用于对分组后的数据进行计算
(3)内置的聚合函数
sum(),mean(),max(),min(),count(),size(),describe()
(4)可以自定义函数,传入agg方法中
grouped.agg(func)
(5)func的参数为groupby索引对应的记录
python数据结构:pandas(3)的更多相关文章
- python之pandas学习笔记-pandas数据结构
pandas数据结构 pandas处理3种数据结构,它们建立在numpy数组之上,所以运行速度很快: 1.系列(Series) 2.数据帧(DataFrame) 3.面板(Panel) 关系: 数据结 ...
- 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础
在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...
- 基于 Python 和 Pandas 的数据分析(1)
基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性 ...
- python之pandas简单介绍及使用(一)
python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- 「Python」pandas入门教程
pandas适合于许多不同类型的数据,包括: 具有异构类型列的表格数据,例如SQL表格或Excel数据 有序和无序(不一定是固定频率)时间序列数据. 具有行列标签的任意矩阵数据(均匀类型或不同类型) ...
- Python之Pandas中Series、DataFrame实践
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- python数据结构与算法
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
- python数据结构与算法——链表
具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...
- python数据结构之图的实现
python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...
随机推荐
- sweetalert2 全面替代 alert ,从 sweetalert2 弹出 text 到 弹出 Dom 以及模态框和取消 sweetalert2 的 OK 按钮
1. 简易基本版 sweetalert 涵盖日常基本的弹出及对话框 2. 升级版本 sweetalert2 满足常见开发工作中的各种要求 3 取消 OK 按钮, 只需要设置 showConfirmBu ...
- ArrayList遍历的三种方法
在输出很多的ArrayList的元素时,用普通的for循环太麻烦,因此本文介绍三种遍历ArrayList的方法 package test; public class Student { private ...
- springboot上传文件大小限制的配置
springboot配置文件: application.properties #配置文件传输 spring.servlet.multipart.enabled =true spring.servlet ...
- Oracle JET Router 与 Module 数据传递
Oracle JET 组件间数据传递方法. 路由:父路由:customers Router 子路由: cust Router 这里 Router 和 module 结合使用. customer 包括 ...
- iOS UICollectionView数据少导致不能滚动
有时候UICollectionView会遇到不能滑动的情况,但是我们并没有代码明确禁止这个东西的滑动效果,这个是苹果系统的小漏洞. 解决办法: 横向滑动的 collectionView.alwaysB ...
- python 3 爬虫
import urllib.request url = "http://www.oschina.net/" data = urllib.request.urlopen(url).r ...
- C# Setting.settings . 用法 2 使用配置文件(.settings、.config)存储应用程序配置
引言 我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置.这样每次都要建立单独的配置类,并书写读写配置 ...
- nacos 发布配置
server 保留 2 份配置文件,一份在 mysql,一份在本地磁盘,同时在内存中缓存配置文件的 md5 值.当客户端获取配置时,server 直接返回本地磁盘文件,使用的是 sendFile ap ...
- shims-vue.d.ts 解析
TypeScript的文档看起来比较让人匪夷所思 TS是从2012年就开始的项目,那时ES6的模块化还没有成为继定标准,所以今天来看TS中一些名词让人匪夷所思,其实都是历史遗留问题 比如namespa ...
- ABAP基本数据类型
ABAP 程序中共包含8种基本数据类型: 数据类型名称 描述 属 性 C Character Text(字符类型) 默认长度=1,默认值=blank,最大长度无限制 N Numeric Text(数 ...