pandas常用方法整理(一)

DataFrame构造函数的有效输入

# 2D ndarray 数据的矩阵,行和列的标签是可选参数
# 数组、列表和元组构成的字典 每个序列成为DataFrame的一列,所有的序列必须长度相等
# NumPy结构化/记录化数组 与数组构成的字典一致
# Series构成的字典 每个值成为一列,每个Series的索引联合起来形成结果的行索引,也可以显式地传递索引
# 字典构成的字典 每一个内部字典成为一列,键联合起来形成结果的行索引
# 字典或Series构成的列表 列表中的一个元素形成DataFrame的一行,字典键或Series索引联合起来形成DataFrame的列标签
# 列表或元组构成的列表 与2D ndarray的情况致
# 其他DataFrame 如果不显示传递索引,则会使用原DataFrame的索引
# NumPy MaskedArray 与2D ndarray的情况类似,但隐蔽值会在结果DataFrame中成为NA/缺失值

一些索引对象的方法和属性

# append 将额外的索引对象粘贴到原索引后,产生一个新的索引
# difference 计算两个索引的差集
# intersection 计算两个索引的交集
# union  计算两个索引的并集
# isin 计算表示每一个值是否在传值容器中的布尔数组
# delete 将位置i的元素删除,并产生新的索引
# drop 根据传参删除指定索引值,并产生新的索引
# insert 在位置i插入元素,并产生新的索引
# is_monotonic 如果索引序列递增则返回True
# is_unique 如果索引序列唯一则返回True
# unique 计算索引的唯一值序列

reindex方法的参数

# index 新建作为索引的序列, 可以是索引实例或任意其他序列型python数据结构, 索引使用时无需复制
# method 插值方式: 'ffill' 为前向填充,而'bfill'是后向填充
# fill_value 通过重新索引引入缺失数据时使用的替代值
# limit 当前向或后向填充时,所需填充的最大尺寸间隙(以元素数量)
# tolerance 当前向或后向填充时,所需填充的不精确匹配下的最大尺寸间隙(以绝对数字距离)
# level 匹配MultiIndex级别的简单索引;否则选择子集
# copy 如果为True,即使新索引等于旧索引,也总是复制底层数据:如果是False,则在索引相同时不要复制数据

DataFrame索引选项

# df[val] 从DataFrame中选择单列或列序列;特殊情况的便利:布尔数组(过滤行), 切片(切片行) 或布尔值DataFrame(根据某些标准设置的值)
# df.1oc[val] 根据标签选择DataFrame的单行或多行
# df.loc[:,val] 根据标签选择单列或多列
# df.loc[val1, val2] 同时选择行和列中的一-部分
# df.iloc[where] 根据整数位置选择单行或多行
# df.iloc[:,where] 根据整数位置选择单列或多列
# df.iloc[where_i, where_j] 根据整数位置选择行和列
# df.at[label_i, label_j] 根据行、 列标签选择单个标量值
# df.iat[i, j] 根据行、列整数位置选择单个标量值
# reindex方法 通过标签选择行或列
# get_value, set_value方法 根据行和列的标签设置单个值

灵活算术方法

# add, radd 加法(+)
# sub, rsub 减法(-)
# div, rdiv 除法 ()
# floordiv, rfloordiv 整除(/)
# mul,rmul 乘法(*)
# poW, rpow 幂次方 (**)

排名中的评级关系打破方法

# average 默认:在每个组中分配平均排名
# min 对整个组使用最小排名
# max 对整个组使用最大排名
# first 按照值在数据中出现的次序分配排名
# dense 类似于method='min',但组间排名总是增加1,而不是一个组中的相等元素的数量

归约方法可选参数

# axis 归约轴,0为行向,1为列向
# skipna 排除缺失值,默认为True
# level 如果轴是多层索引的(MultiIndex), 该参数可以缩减分组层级

描述性统计和汇总统计

# count 非NA值的个数
# describe计算Series或DataFrame 各列的汇总统计集合
# min, max计算最小值、最大值
# argmin, argmax 分别计算最小值、最大值所在的索引位置(整数)
# idxmin, idxmax 分别计算最小值或最大值所在的索引标签
# quantile 计算样本的从0到1间的分位数
# sum 加和
# mean 均值
# median 中位数(50% 分位数)
# mad 平均值的平均绝对偏差
# prod 所有值的积
# var 值的样本方差
# std 值的样本标准差
# skew 样本偏度(第三时刻)值
# kurt 样本峰度(第四时刻)的值
# cumsum 累计值
# cummin, cummax 累计值的最小值或最大值
# cumprod 值的累计积
# diff 计算第一个算术差值(对时间序列有用)
# pct_change 计算百分比

唯一值, 计数和集合成员属性方法

# isin 计算表征Series中每个值是否包含于传入序列的布尔值数组
# match 计算数组中每个值的整数索引,形成一个唯一值数组。 有助于数据对齐和join类型的操作
# unique 计算Series值中的唯一值 数组,按照观察顺序返回
# value_counts 返回一个Series,索引是唯一值序列,值是计数个数,按照个数降序排序

pandas的解析函数

# read_CSV 从文件、URL或文件型对象读取分隔好的数据,逗号是默认分隔符
# read_table 从文件、URL或文件型对象读取分隔好的数据,制表符('\t') 是默认分隔符
# read_fwf从特定宽度格式的文件中读取数据(无分隔符)
# read_clipboard read_table的剪贴板版本,在将表格从Web页面上转换成数据时有用
# read_excel 从Excel的XLS或XLSX文件中读取表格数据
# read_hdf 读取用pandas存储的HDF5文件
# read_html 从HTML文件中读取所有表格数据
# read_son 从JSON (JavaScript Object Notation)字符串中读取数据
# read_msgpack 读取MessagePack二进制格式的pandas数据
# read_pickle 读取以Python pickle格式存储的任意对象
# read_sas 读取存储在SAS系统中定制存储格式的SAS数据集
# read_sq1 将SQL查询的结果(使用 SQLAlchemy)读取为pandas的DataFrame
# read stata 读取Stata格式的数据集
# read_feather 读取Feather二进制格式

一些read_csv函数参数

# path 表明文件系统位置的字符串、URL或文件型对象
# sep或delimiter 用于分隔每行字段的字符序列或正则表达式
# header 用作列名的行号,默认是0 (第一行),如果没有列名的话,应该为None
# index_col 用作结果中行索引的列号或列名,可以是一一个单一的名称/ 数字,也可以是一个分层索引
# names 结果的列名列表,和header=None一起用
# skiprows 从文件开头处起,需要跳过的行数或行号列表
# na_values 需要用NA替换的值序列
# comment 在行结尾处分隔注释的字符
# parse_dates 尝试将数据解析为datetime,默认是False。如果为True,将尝试解析所有的列。也可以指定列号或列名列表来进行解析。如果列表的元素是元组或列表,将会把多个列组合在一起进行解析(例如日期/时间将拆分为两列)
# keep_date_col 如果连接列到解析日期上,保留被连接的列,默认是False
# converters包含列名称映射到函数的字典(例如{'foo' :f}会把函数f应用到'foo'列)
# dayfirst 解析非明确日期时,按照国际格式处理(例 如7/6/2012 > June7,2012),默认为False
# date_parser 用于解析日期的函数
# nrows 从文件开头处读入的行数
# iterator 返回一个TextParser对象,用于零散地读入文件
# chunksize 用于迭代的块大小
# skip_footer 忽略文件尾部的行数
# verbose 打印各种解析器输出的信息,比如位于非数值列中的缺失值数量
# encoding Unicode文本编码(例如'utf-8'用于表示UTF-8编码的文本)
# squeeze 如果解析数据只包含一列,返回一个Series
# thousands 千位分隔符(例如','或'.')

csv方言选项

# delimiter 一个用于分隔字段的字符,默认是',’
# lineterminator 行终止符,默认是'\r\n',读取器会忽略行终止符并识别跨平台行终止符
# quotechar用在含有特殊字符字段中的引号,默认是' " '
# quoting 引用惯例。选项包括CSV.QUOTE_ALL(引用所有的字段),csv.QUOTE_MINIMAL (只使用特殊字符,如分隔符),csv. QUOTE_NONNUMERIC和CSV.QUOTE_NONE (不引用)。细节请参考Python的文档。默认是QUOTE_MINIMAL
# skipinitialspace 忽略每个分隔符后的空白,默认是False
# doublequote 如何处理字段内部的引号。如果为True,则是双引号(完整细节和行为请参考在线文档)
# escapechar 当引用设置为csv.QUOTE_NONE 时用于转义分隔符的字符串,默认是禁用的

NA处理方法

# dropna根据每个标签的值是否是缺失数据来筛选轴标签,并根据允许丢失的数据量来确定阈值
# fillna 用某些值填充缺失的数据或使用插值方法(如'ffi1l'或"bfi11').
# isnull 返回表明哪些值是缺失值的布尔值
# notnull isnull的反函数

fillna函数参数

# value 标量值或字典型对象用于填充缺失值
# method 插值方法,如果没有其他参数,默认是'ffill'
# axis 需要填充的轴,默认axis=0
# inplace 修改被调用的对象,而不是生成一个备份
# limit 用于前向或后向填充时最大的填充范围

部分向量化字符串方法列表

# cat 根据可选的分隔符按元素黏合字符串
# contains 返回是否含有某个模式/正则表达式的布尔值数组
# count 模式出现次数的计数
# extract 使用正则表达式从字符串Series 中分组抽取一个或多个字符串;返回的结果是每个分组形成一列的 DataFrame
# endswith 等价于对每个元素使用x.endwith (模式)
# startswith等价于对每个元素使用 x.startwith (模式)
# findall 找出字符串中所有的模式1正则表达式匹配项,以列表返回
# get 对每个元素进行索引(获得第i个元素)
# isalnum 等价于内建的str.alnum
# isalhpa 等价于内建的str.isalpha
# isdecimal等 价于内建的str.isdecimal
# isdigit 等价于内建的str.isdigit
# islower 等价于内建的str.islower
# isnumeric 等价于内建的str.isnumeric
# isupper 等价于内建的str.isupper
# join 根据传递的分隔符,将Series中的字符串联合
# len 计算每个字符串的长度
# lower, upper 转换大小写:等价于对每个元素进行x.lower()或x.upper()
# match 使用re.match将正则表达式应用到每个元素上,将匹配分组以列表形式返回
# pad 将空白加到字符串的左边、右边或两边
# center等价于pad (side='both') 
# repeat 重复值(例如s.str.repeat(3) 等价于对每个字符串进行x*3)
# replace 以其他字符串替代模式/正式表达式的匹配项
# slice 对Series中的字符串进行切片
# split 以分隔符或正则表达式对字符串进行拆分
# strip 对字符串两侧的空白进行消除,包括换行符
# rstrip 消除字符串右边的空白
# lstrip 消除字符串左边的空白

how参数的不同连接类型

# inner 只对两张表都有的键的交集进行联合
# left 对所有左表的键进行联合
# right 对所有右表的键进行联合
# outer 对两张表都有的键的并集进行联合

merge函数参数

# left 合并时操作中左边的DataFrame
# right 合并时操作中右边的DataFrame
# how 'inner'、 'outer'、'left'、 'right'之一,默认是' inner
# on 需要连接的列名。必须是在两边的DataFrame对象都有的列名,并以left和right中的列名的交集作为连接键
# left_on left DataFrame 中用作连接键的列
# right_on right DataFrame 中用作连接键的列
# left_index 使用left的行索引作为它的连接键(如果是MultiIndex,则是多个键)
# right_index 使用right的行索引作为它的连接键(如果是Multindex,则是多个键)
# sort 通过连接键按字母顺序对合并的数据进行排序;在默认情况下为True (在大数据集上某些情况下禁用该功能可以获得更好的性能)
# suffixes 在重叠情况下,添加到列名后的字符串元组:默认是(_ x',' y') (例如如果待合并的DataFrame中都含有'data'列,那么结果中会出现。 datax'、'data_ y')
# copy 如果为False,则在某些特殊情况下避免将数据复制到结果数据结构中;默认情况下总是复制
# indicator 添加一个特殊的列merge, 指示每一行的来源:值将根据每行中连接数据的来源分别为'left. only', 'right. only' 或'both'

concat函数的参数

# objs 需要连接的pandas对象列表或字典:这是必选参数
# axis 连接的轴向:默认是0 (沿着行方向)
# join 可以是'inner'或'outer' (默认是'outer');用于指定连接方式是内连接(inner) 还是外连接(outer)
# join_axes 用于指定其他n-1轴的特定索引,可以替代内1外连接的逻辑
# keys 与要连接的对象关联的值,沿着连接轴形成分层索引,可以是任意值的列表或数组,也可以是元组的数组,也可以是数组的列表(如果向levels参数传入多层数组)
# levels 在键值传递时,该参数用于指定多层索引的层级
# names 如果传入了keys和/或levels参数,该参数用于多层索引的层级名称
# verify_integrity检查连 接对象中的新轴是否重复,如果是,则引发异常:默认(False)允许重复
# ignore index不沿着连接轴保留索引,而产生一段新的(长度为total length)索引

添加新评论

本站现已启用评论投票,被点踩过多的评论将自动折叠。与本文无关评论请发留言板。请不要水评论,谢谢。

已有 0条评论