Python之Pandas库常用函数大全(含注释)
前言:本博文摘抄自中国慕课大学上的课程《Python数据分析与展示》,推荐刚入门的同学去学习,这是非常好的入门视频。
继续一个新的库,Pandas库。Pandas库围绕Series类型和DataFrame类型这两种数据结构,提供了一种高效便捷的数据处理方式。
- Series 类型创建
Series类型是一组数据及与之相关的数据索引组成
自动索引:
a = pd.Series([9, 8, 7, 6]) 构造一个Series对象a
自定义索引:
a = pd.Series([9, 8, 7, 6], index = [‘a’, ‘b’, ‘c’, ‘d’])
- 从标量值创建:
s = pd.Series(25, index = [‘a’, ‘b’, ‘c’])
- 从字典类型创建:
键值对中的键是索引
d = pd.Series({‘a’:9, ‘b’:8, ‘c’:7})
- 从ndarray类型创建:
- Series类型基本操作
- ,index 获得索引 .values 获得数据
Series类型会自动生成默认索引,当自动索引和自定义索引并存,全当自定义索引。
只索引,得到值。做切片,得到还是Series类型数据。
in : 判断“键”是否在字段中 返回 True / False
b.get(‘f’, 100) 获取b的索引为‘f’的数据,若不存在,返回100
Series类型对齐操作
索引一致的,对应元素相加,无一致的索引,数据为NaN
Series类型的name属性
- DataFrame类型创建
DataFrame是表格型类,可理解为二维代表签数据类型, 其由共用相同索引的一组列组成: index(axis=0),colum(axis=1)
从ndarray创建DataFrame类型
d= pd.DataFrame(np.arange(10).reshape(2,5))
从字典创建DataFrame类型
字典中的键,默认为列索引;
只选取字典中有的索引所对应的值,没有的自动补齐
从列表创建DataFrame类型
d[‘one’] 获得新的DataFrame类型
d.ix[‘b’] 获得d的 b这一列
d[‘one’][‘b’] 获得 数据 2 注意:必须先[‘one’]后[‘b’],先列后行
- Pandas数据类型操作
重新索引
reindex(index=None, columns=None,…)方法 可改变或重排Series和DataFrame索引
reindex(index=None, columns=None,…)
index, colums 新的行列自定义索引
fill_value 在重新索引,用于填充缺失位置的值
method 填充方法,ffill当前值向前填充, bfill向后填充
limit 最大填充量
copy 默认为True,生成新的对象,False时,新旧相等,但不复制
d.reindex(index = [‘d’, ‘c’, ‘b’, ‘a’ ])
d.reindex(colums = [‘two’, ‘one’])
newc = d.colums.insert( 4, ‘新增’) newc为一个colums
- 索引类型常用方法
.append(idx) 连接另外一个Index对象,产生新的Index对象
.diff(idx) 计算差集,产生新的Index对象
.intersection(idx) 计算交集,产生新对象
.union(idx) 计算并集
.delete(loc) 删除loc位置处的元素
.insert(loc, e) 在loc位置增加一各元素e
删除指定索引对象
.drop()可删除Series或DataFrame制定的行或列
d.drop([‘c1’, ‘c2’]) # 此处生成新对象,原对象d不改变
d.drop(‘one’,axis=1) 要删除列,需要加上axis = 1.
- Pandas库数据类型运算
算术运算法则
根据行列索引进行运算,补齐(NaN)后运算,运算默认产生浮点数
二维和一维、一维和零维时,采用广播运算,即低的于高的每一维运算
算术运算方法形式的运算
.add(d, **argws) .sub(d, **argws) .mul(d, **argws) .div(d, **argws)
**argws为可选参数:
fill_value,补齐时填充的值;
广播运算时,一维的列默认作用到二维的行(axis=1),要更改到列,则需要增加参数
a.add(b, axis=0 )
比较运算
同维度需要有相同的shape
不同维度时,默认为在1轴运算
- 数据排序
.sort_index()方法在指定轴上根据索引进行排序,默认升序。
.sort_index(axis=0,ascending = True) ascending是指递增排序
.sort_values()方法在指定轴上根据数值进行排序,默认升序。
Serier.sort_values(axis= 0, ascending=True)
DataFrame.sort_values(by, axis = 0, ascending = True)
by: 只对axis轴上的某个 索引 或 索引列表 进行排序
NaN空值,保持在排序末尾
- Pandas统计分析函数
.sum() 计算数据总和,按0轴计算
.count() 非NaN值的数量
.mean() .median() 计算算术平均值、算术中位数
.var() .var() 计算方差、标准差
.min() .max 计算最小、大值
.argmin() .argmax() 计算最大、小值所在位置的索引(针对自动索引的)(适用于Series类型:)
.idxmin() .idxmax() 计算最大、小值所在位置的索引(针对自定义索引的)(适用于Series类型:)
.describe() 针对0轴(各列)的统计汇总
- 数据的相关性
.cov() 计算协方差矩阵
.corr() 计算相关系数矩阵
Python之Pandas库常用函数大全(含注释)的更多相关文章
- Python之Numpy库常用函数大全(含注释)
前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背 ...
- Python之Numpy库常用函数大全(含注释)(转)
为收藏学习,特转载:https://blog.csdn.net/u011995719/article/details/71080987 前言:最近学习Python,才发现原来python里的各种库才是 ...
- Python之Matplotlib库常用函数大全(含注释)
plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test plt.ylabel(‘Grade’) : y轴的名称 plt.axis([-1, 1 ...
- Matplotlib库常用函数大全
Python之Matplotlib库常用函数大全(含注释) plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test plt.ylabel(‘Gr ...
- Pandas库常用函数和操作
1. DataFrame 处理缺失值 dropna() df2.dropna(axis=0, how='any', subset=[u'ToC'], inplace=True) 把在ToC列有缺失值 ...
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
- Python math库常用函数
math库常用函数及举例: 注意:使用math库前,用import导入该库>>> import math 取大于等于x的最小的整数值,如果x是一个整数,则返回x>>> ...
- 【javascript】javascript常用函数大全
javascript函数一共可分为五类: •常规函数 •数组函数 •日期函数 •数学函数 •字符串函数 1.常规函数 javascript常规函数包括以下9个函数: ( ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
随机推荐
- ubuntu14.04 python + opencv 傻瓜式安装解决方案
ubuntu14.04 python + opencv 傻瓜式安装解决方案 ubuntu下使python和opencv来做开发的话,总要花那么点时间来配置环境.我偶然间发现了一种傻瓜式安装办法希望快 ...
- Oracle Dual 表详解
1.DUAL表的用途Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中--查看当前连接用户SQL> select user from dua ...
- 机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】
转自:http://blog.exbot.net/archives/2966 导语:本期公开课面向想入手ROS却又不知从何下手的小伙伴,为大家梳理好学习思路. ROS和Android一样是开源的,功能 ...
- linux 时间模块 一
作者:云天明链接:https://www.zhihu.com/question/50764115/answer/122613742来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- Android 动态隐藏显示导航栏,状态栏
Talk is cheap, show me the code. --Linus Torvalds Okay, here: 一.导航栏: [java] view plain copy private ...
- html css的简单学习
html css的简单学习 css的内边距:padding (auto.length.%)(顺序:上.右.下.左)padding-toppadding-leftpadding-rightpadding ...
- ZOJ 2619: Generator
类型:概率 + 解方程组(高斯消元法) + KMP(好吧其实我用的是暴力~)题意:你可以等概率的选择大写字母里的前n个字母,在纸上写啊写,一直到出现给定的字符串.问写的字母个数的期望.思路: 期望递推 ...
- WEB学习-CSS清除浮动
浮动的清除 来看一个实验:现在有两个div,div身上没有任何属性.每个div中都有li,这些li都是浮动的. <div> <ul> <li>HTML</li ...
- 在centos7环境下建立MariaDB多实例
环境全部基于vmware player 12 os: centos7 mariadb: mariadb-10.1.12-linux-x86_64.tar.gz 主要根据MariaDB给出的帮助文档,以 ...
- free如何知道释放内存长度:vs与glibc分配内存时编译器内部处理
鉴于网上这个资料实在太少,将以前整理过却未完全的一篇文章贴出来,希望大牛指正vs下内存管理方式.可联系gaoshiqiang1987@163.com vs分配内存 vs没有源码,编译器在分配内存时,分 ...