Python笔记:pandas之数据统计
算术运算和数据对齐
pandas最重要的一个功能是,它可以对不同索引的对象进行算术运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。
自动的数据对齐操作在不重叠的索引处引入NaN值,缺失值会在算术运算过程中传播。
对于DataFrame,对齐操作会同时发生在行和列上,将它们相加后将会返回一个新的DataFrame,其索引和列为原来两个DataFrame的并集。
如果DataFrame对象相加,没有共用的列或行标签,结果都会是空。
#算术运算 add, radd #加法 sub, rsub #减法 div, rdiv #除法 floordiv, rfloordiv #底除 mul, rmul #乘法 pow, rpow #指数
在算术方法中填充值
在算术方法中设置参数fill_value的值,fill_value会填充到结果的缺失值。
DataFrame和Series之间的运算
默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFrame的列,然后沿着行一直向下广播。
如果某个索引值在DataFrame的列或Series的索引中找不到,则参与运算的两个对象就会被重新索引以形成并集。
如果希望匹配行且在列上广播,则必须使用算术运算方法,传入的轴号就是希望匹配的轴。
函数应用和映射
NumPy的ufuncs(元素级数组方法)也可用于操作pandas对象
DataFrame的apply方法可实现将函数应用到由各列或行所形成的一维数组上,由关键字axis进行选择轴
排序与排名
#sort_index,将返回一个已排序的新对象
#将列进行排序,数据默认是按升序排序的,但也可以通过设置关键字ascending=False进行降序排序
frame.sort_index(axis=1, ascending=False)
#sort_values() 按值对Series进行排序
#在排序时,任何缺失值默认都会被放到Series的末尾
#当排序一个DataFrame时,根据一个或多个列中的值进行排序
#按B列的值进行排序
frame.sort_values(by='b')
# 先按a列的值进行排序,如a列中有相同的数据,则按b列进行排序
frame.sort_values(by=['a', 'b'])
#rank()
#为各组分配一个平均排名
#根据值在原数据中出现的顺序给出排名
#设置排序方向与sert_index相同
#具有axis关键字
frame.rank(method='first')
带有重复标签的轴索引
#对于带有重复值的索引,数据选取的行为将会有些不同。如果某个索引对应多个值,则返回一个Series;而对应单个值,则返回一个标量值 #obj.index.is_unqiue 检查它的值是否是唯一的
汇总和计算描述统计
pandas对象拥有一组常用的数学和统计方法。它们大部分属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。跟对应的numpy数据方法相比,它们都是基于没有缺失数据的假设而构建的。
#调用DataFrame的sum方法将会返回一个含有列的和的Series
df.sum()
#传入axis='columns'或axis=1将会按行进行求和运算
df.sum(axis=1)
#NA值会自动被排除,除非整个切片(这里指的是行或列)都是NA
#通过skipna选项可以禁用该功能
df.mean(axis='columns', skipna=False)
#约简方法的常用选项
axis #约简的轴,DataFrame的行用0,列用1
skipna #排除缺失值,默认值为True
level #如果轴是层次化索引的(即MultiIndex),则根据level分组约简
#所有与描述统计相关的方法
count #非NA值的数量
describe #针对Series或各DataFrame列计算汇总统计
min、max #计算最小值和最大值
argmin、argmax #计算最小值和最大值的索引位置(整数)
idxmin、idxmax #计算最小值和最大值的索引值
quantile #计算样本的分位数(0到1)
sum #值的总和
mean #值的平均数
median #值的算术平均数(50%分位数)
mad #根据平均值计算平均绝对离差
var #样本值的方差
std #样本值的标准差
skew #样本值的偏度(三阶矩)
kurt #样本值的峰度(四阶矩)
cumsum #样本值的累计和
cummin、cummax #样本值的累计最大值和累计最小值
cumprod #样本值的累计积
diff #计算一阶差分(对时间序列很有用)
pct_change #计算百分数变化
唯一值、值计数以及成员资格
#常用方法 unique #返回Series中的唯一值数据,按发现的顺序返回 value_counts #用于计算一个Series中各值出现的频率,按计数值降序排列 isin #计算一个表示“Series各值是否包含于传入的值序列中”的布尔型数组 match #计算一个数组中的各值到另一个不同值数组的整数索引,对于数据对齐和连接类型的操作十分有用

浙公网安备 33010602011771号