Pandas基础(三)

5分组
5.1分组
df.groupby(分组依据)[数据来源]
根据多个依据分组,在分组依据处传入列名构成的列表
分组依据中还可以传入conditon
5.2Groupby对象的属性
1、ngroups:分了多少组
2、groups:组名映射到组索引的字典
3、size:表长乘表宽
5.3分组的三大操作
1、聚合函数
max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod
agg方法
(1)对同一列使用不同的聚合函数
df.([聚合函数字符串列表])
(2)对特定的列使用特定的聚合函数
df.(字典映射)
(3)使用自定义函数
df.(lambda x)
df.(函数名)
(4)聚合结果重命名
函数位置传入元组,(新名字,函数)
2、变换函数和transform方法
cum/count/cumsum/cumprod/cummax/cummin
3、索引与过滤
组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回 True 则会被保留,False则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为 DataFrame 返回。
df.filter()
5.4跨列分组
apply()方法允许跨列使用
6长宽表的变形
6.1pivot()函数(长表变宽表)
变形后的行索引 index
需要转到列索引的列 columns
列、行索引对应的数值 values
6.2pivot_table()
如果不满足唯一性条件,那么必须通过聚合操作使得相同行列组合对应
的多个值变为一个值
aggfunc="“重复值的处理
6.3melt()函数(宽表变长表)
id_vars:每个列变量类别会对应一个id_vars的块
value_vars:从列压缩到行的变量
var_name:原来列变量名的含义
value_name:原来列变量值的含义
6.4wide_to_long
melt 方法中,在列索引中被压缩的一组值对应的列元素只能代表同一层次的含义。
stubnames=[]
变量值的含义,转化后的表以其为列
i=[]
保持不变的id变量
j=”"
压缩到行的变量名含义
sep=""
分隔符
suffix=""
正则后缀
6.5索引的变形
unstack()把行索引转换为列索引
stack()把列索引的层压入到行索引
6.6其他函数
get_dummies()
把特征类别转化为指示变量
7连接
7.1关系型连接
1、值连接
merge()函数
how:连接方式
left、right、inner、outer
on:连接的列
连接的列不同名,可以用left_on、right_on来指定。
2、索引连接
把索引当作键连接,除了基本的on和how之外,还可以指定左右后缀lsuffix和rsuffix。
df.join(df2,how="")
7.2方向连接
1、contact()
axis连接方向
join连接形式
keys新表中指示来自于哪一张旧表的名字
2、序列与表的连接
append()追加到表的行末或者列末
assign()添加新的列
7.3类连接操作
1、比较
compare()函数
比较两个表或者序列的不同之处汇总展示
2、组合
combine()函数
8缺失数据
8.1统计和删除
isna()
isnull()
查看每个单元格是否缺失
如果想要同时对几个列,检索出全部为缺失或者至少有一个缺失或者没有缺失的行,可以使用 isna, notna 和any, all 的组合。
8.2缺失值的统计和删除
dropna()
参数为axis
删除方式how=“any”/“all”
删除的非缺失值个数thresh
备选的删除子集subset
8.3缺失值的填充和插值
1、fillna()填充
value、method、limit
method=“ffill”/“bfill”
8.4Nullable类型
值得注意的是,虽然在对缺失序列或表格的元素进行比较操作的时候,np.nan 的对应位置会返回 False ,但是在使用 equals 函数进行两张表或两个序列的相同性检验时,会自动跳过两侧表都是缺失值的位置,直接返回 True
从字面意义上看 Nullable 就是可空的,言下之意就是序列类型不受缺失值的影响。
9文本数据
9.1正则表达式
. 匹配换行符以外的任意字符
[]匹配方括号里包含的任意字符
[^]否定字符类,匹配方括号中不包含的字符
*匹配前面的子表达式零次或多次
+匹配前面的子表达式一次或多次
?匹配前面的子表达式零次或者一次
{n,m}匹配前面的字符至少n次不超过m次
()按照确切的顺序匹配字符
|分支结构
\转义符,可以换原元字符原来的含义
^匹配行的开始
$匹配行的结束

\w匹配所有字母、数字、下划线
\W匹配非字母和数字的字符
\d匹配0-9
\D匹配非数字
\s匹配空格符
\S匹配非空格符
\B匹配非空字符串开头或者结尾的位置
9.2文本处理的五类操作
str.split()拆分
str.join()/str.cat()连接字符串/序列
str.contains()是否包含正则模式的布尔序列
str.startswith()/str.endswith()
以给定模式为开始和结束的布尔序列
str.repalce()
替换
str.extract()
提取
9.3常用字符串函数
upper()大写
lower()小写
title()单词首字母大写
capitalize()句子第一个单词首字母大写
swapcase()大小写互换
9.4数值型函数
to_numeric()转换为数值
9.5统计型函数
count()
返回正则模式的次数
len()
字符串的长度
9.6格式型函数
lstrip(),rstrip(),strip()
去除左侧、右侧、两侧空格
pad()填充函数
选定字符串长度、填充的方向、填充的内容
整理自:https://github.com/datawhalechina/joyful-pandas

你可能感兴趣的:(Pandas)