• pandas 常用函数整理


    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

  • 相关阅读:
    接竹竿
    Vijos P1053 Easy SSSP
    计算机网络-五层协议和物理层
    代码阅读
    selenium自动化测试原理和设计的分享
    appium desktop 1.7 byName不能用,重写
    appium desktop 1.7 的swipe功能不能用,重写。
    appium在不同类中使用的是同一个session
    GIT 上传、ssh设置、一些命令。
    java 学习:在java中启动其他应用,由jenkins想到的
  • 原文地址:https://www.cnblogs.com/csj007523/p/7424375.html
Copyright © 2020-2023  润新知