pandas常用函数整理,作为个人笔记。
仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档。
约定
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
带.的为Series或者DataFrame对象的方法,只列举了部分关键字参数。
1、基础
.values 获取值,返回array对象
.index 获取(行)索引,返回索引对象
Series( index=) 创建Series,可指定索引
pd.isnull pd.notnull 返回是否为缺失值的布尔型数组
.isnull 同上
DataFrame(columns=,index=) 创建DataFrame,可指定行索引,列索引
.T 行列转置
del 关键字 删除
.reindex(method=, fill_value=, index=, columns=) 重新索引,即按照新索引创建新对象,可指定缺失值 填充方式,缺失值插值方式,行索引,列索引
.ix[ , ] 同上,添入行、列索引,可传入列表
.drop(axis=) 删除指定轴上的指定值
.apply(axis=) 沿指定轴应用函数
.sort_index(axis=, by=列名) 对索引排序,可根据指定列的值进行排序
.order 按值排序
.rank(ascending=, method=, axis=) 排名
.index.is_unique 检查索引值唯一性(是否有重复项)
2、约简类,可指定轴、是否排除缺失值、层次化索引分组约简。
.sum(axis=, skipna=, level=) 求和
.mean 均值
.idxmax 返回最大值索引
.cumsum 累积和
.describe统计描述汇总
.count 非nan值数量
.min 最小值
.quantile 分位数
.median 中位数
.mad 平均绝对离差
.var 方差
.std 标准差
.skew 偏度
.kurt 峰度
.cumprod 累积积
.diff
.pct_change
.tail 显示尾行,五个
.head 显示开始行,五个
.corr 求相关系数(Series和Series,或者DataFrame和DataFrame)
.cov 求协方差
.corrwith 求相关系数(DataFrame的行或列 与Series或DataFrame)
.unique 得到唯一值数组
.value_counts(sort=) 求值频率,可传入False指定降序排列
.isin 判断成员资格
.dropna(how=, axis=, thresh=) 丢弃缺失数据,对DataFrame可指定丢弃方式
.fillna(inplace=,method=, limit=) 用指定值或字典填充缺失数据,可指定是否就地修改,填充方式,填充数量限制
.unstack 行索引转列索引
.stack 列索引转行索引
MultiIndex.from_arrays 用数组构建层次化索引
.swaplevel 重排层次化索引分级顺序
.sortlevel 根据单个级别的值对数据排序
.set_index(drop=) 将某一列转为行索引
.reset_index 将行索引转为列
.irow 根据整数位置选取行
.icol 根据整数位置选取列
pd.Panel 创建面板数据
.to_panel DataFrame转换为Panel
.to_frame Panel转换为DataFrame
3、数据读取
pd.read_csv(sep=, delim_whitespace=, header=,skiprows=,converters=,keep_date_col=,parse_date=,na_values=,nrows=,skip_footer=, )
最常用的csv和text文件读取方式
.to_csv 将数据写入csv
.from_csv 从csv读取数据
4、数据规整
pd.merge(on=,how=,suffixes=,left_index=,right_index=) 横向合并
.join(how=, on=, ) 按索引合并,可传入一组DataFrame
pd.concat(axis=,join=,join_axes=,keys=,names=,ignore_index=) 纵向连接,也可以传入轴进行横向连接
np.nan nan值
np.where 矢量化if-else表达,第一个为判断条件,可为布尔型数组,后面两个为值
.combine_first 用一个数据为另一个数据“打补丁”
.pivot 长格式转宽格式,指定行索引,列索引名,填充值列
.duplicated 返回布尔型Series,表示各行是否是重复行(第一次出现的值为False,再次出现为True)
.drop_duplicates(take_last=) 返回移除了重复行的DataFrame,可指定是保留第一个还是最后一个
.map 元素级转换函数,可将函数应用于Series或DataFrame某列
.replace 替换指定值,第一个参数为要被替换的值,第二个是用来替换的值,支持字典
.rename(index=, columns=,inplace=) 轴标签更新,接受字典,可就地修改
pd.cut(right=,labels=) 面元划分
pd.value_counts 值频率计算
.any 可用来过滤异常值,里面为容忍度整数
.take 按指定顺序重排序,可接受列表
np.random.permutation 产生随机重排列
pd.get_dummies(prefix=) 计算哑变量矩阵,可指定列前缀
字符串对象方法
.split 按指定值拆分字符串
.strip 修剪空白符和换行符
.join 用指定值连接字符串
.index 返回索引,找不到则引发异常
.find 返回索引,找不到返回-1
.count 返回指定子串出现次数
re.compile 编译regex对象
re.compile.findall 得到匹配regex的所有模式
pd中的方法
.str.contains 按指定模式搜索,返回布尔型数组
.str.match 按指定模式获取
.str.get 按指定模式获取
.str[] 按指定模式获取
5、分组运算
.groupby(level=, axis=,group_keys=) 进行按列分组,然后就可以调用进行聚合或其他运算了
.size 返回含有分组大小的Series
.agg(as_index=) 可对已经分组的对象应用,传入函数,或者针对不同列的不同函数,用字典。
.add_prefix 为列索引加前缀
.transform 传入函数,将指定函数应用到各个分组,将结果放置到适当的位置
.apply() 一般性的“拆分-应用-合并”函数,超级有用
pd.pivot_table(rows=, cols=, margins=, aggfunc=, fill_value=,) 分组聚合,可指定需要聚合的列,分组列,添加分项小计,传入聚合函数,缺失值设置。
pd.crosstab计算分组频率的交叉表
6、时序分析
from datetime import datetime
datetime.now 获取当前时间
now.year 年
now.month 月
now.day 日
.strftime 日期转为字符串,可指定格式
.strptime 字符串转为日期,可指定格式
from dateutil.parser import parse
parse 解析日期
pd.to_datetime 解析日期
pd.date_range(periods=, freq=) 生成日期索引
pd.DatetimeIndex 创建时间序列
.resample(how=,closed=,loffset=,fill_method=,limit=) 重采样
.shift(freq=) 数据前移或滞后,正数为滞后,可指定周期
.tz_locallize 将单纯时区转本地化
.tz_convert 对本地化时区进行时区转换
pd.Timestamp 创建时间戳序列
pd.Period 创建时期序列
pd.period_range 创建时期范围序列
pd.PeriodIndex 创建时期索引
.asfreq 时期频率转换
.to_timestamp 时期转时间戳
.to_period 时间戳转时期
.plot 画图
缺点和不足:未针对Series和DataFrame的方法做明确区别;index对象的方法未列举;其他数据读入方式未列取;关键字参数仅列举了部分;可视化未列举;时序分析写的过简;pandas版本存在更新,函数及参数未完全验证;一些操作技巧未说明。
补充:了解基础部分就可以辅助完成策略编写,而分组运算和时序分析部分函数不多,但灵活性很强,对个人研究的数据处理帮助较大,可以轻松画出经典技术指标图,或者构建自己的技术指标。更多统计分析与建模,还需要其他库的支持。
阅读原文:http://suo.im/3UWOOP
pandas 常用函数整理的更多相关文章
-
NiosII常用函数整理
NiosII常用函数整理 IO操作函数函数原型:IORD(BASE, REGNUM) 输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量函数说明:从基地址为BASE的设备中读取寄存器中偏 ...
-
pandas常用函数之shift
shift函数是对数据进行移动的操作,假如现在有一个DataFrame数据df,如下所示: index value1 A 0 B 1 C 2 D 3 那么如果执行以下代码: df.shift() 就会 ...
-
pandas常用函数之diff
diff函数是用来将数据进行某种移动之后与原数据进行比较得出的差异数据,举个例子,现在有一个DataFrame类型的数据df,如下: index value1 A 0 B 1 C 2 D 3 如果执行 ...
-
oracle常用函数整理
oracle常用函数整理 1.绝对值.取余.判断数值正负函数 绝对值:ABS(n) 示例: SELECT ABS(100),ABS(-100),ABS('100') FROM ...
-
【转载】pandas常用函数
原文链接:https://www.cnblogs.com/rexyan/p/7975707.html 一.import语句 import pandas as pd import numpy as np ...
-
整理 pandas 常用函数
1. df.head(n): 显示数据前n行,不指定n,df.head则会显示所有的行 2. df.columns.values获取所有列索引的名称 3. df.column_name: 直接获取列c ...
-
Python 学习:常用函数整理
整理Python中常用的函数 一,把字符串形式的list转换为list 使用ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list from as ...
-
JavaScript Array 常用函数整理
按字母顺序整理 索引 Array.prototype.concat() Array.prototype.filter() Array.prototype.indexOf() Array.prototy ...
-
mysql常用函数整理
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 ) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL( ...
随机推荐
-
Python 基礎 - 用戶交互程序
現在就來寫一個簡單的 用戶輸入 的程式,這是一個互動模式,需要使用者自已輸入 #!/usr/bin/env python3 # -*- coding:utf-8 -*- username = inpu ...
-
hdu----(1528)Card Game Cheater(最大匹配/贪心)
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
-
怎样调整CODESOFT中条码线的宽度
CODESOFT是一款功能强大.灵活便捷的标签条码设计打印软件.在使用CODESOFT设计并打印标签,有时会因为打印精度或扫面清晰度等原因,需要调整条形码中行的宽度,即调整条码线宽度.本文,小编 ...
-
同一网站不同和二级域名和不同子目录的cookie
1.cookie二级域名的实现: 用户其中一个站点登录,而且可以各个子频道间切换,保持登录状态设置Cookie时,使用如下代码即可:setcookie(name,value,expire,path,& ...
-
C语言中指针中的值赋值给数组
如果把各种语言做个冷兵器类比的话,C语言一定是刀客的最佳工具.入门很简单,但是要是能把它熟练运用,那就是顶尖级别的高手了. 用了那么多年的C语言,发现自己还是仅仅处于熟练的操作工.今天遇到了一个bug ...
-
c++之sizeof的用法
在此温习一下c语言中sizeof的用法以及c++11.0的标准中,关于初始化的新方式,先上代码: # include "iostream" # include "stri ...
-
C# 关闭子窗体释放子窗体对象问题
1 在主窗口中实例化子窗口 Form2 f2 = new Form2(); 2 通过按钮来显示子窗口 f2.Show(); 3 关闭子窗口而不释放子窗口对象的方法 protected override ...
-
【代码笔记】iOS-请求去掉url中的空格
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...
-
poj 3468 A Simple Problem with Integers 线段树加延迟标记
A Simple Problem with Integers Description You have N integers, A1, A2, ... , AN. You need to deal ...
-
题解-python-CodeForces 227A
codeforces题目,用python写 本题输入三个点坐标,考察叉积,若大于0则right,小于0则left,等于0则towards 代码: a = raw_input().split() b = ...