永无止境的假期--之进阶pandas篇

2020/04/27 休息

Posted by WangXiaoDong on April 27, 2020
    今天,继续总结最近学到的知识~

最近,在网上学习了一下阿里出品的人工智能学习路线系列。收获很大,需要总结一下。

今天总结python数据处理三剑客numpy,pandas,matplotlib之一的——pandas进阶内容

Pandas进阶内容的学习

首先,是这次学习的主要思维导图: pic1

1. 缺失值处理

1.1 缺失值是Nan

1) 查找是否有缺失值 & 查找缺失值所在段位

import pandas as pd
import numpy as np
df = pd.read_csv('...')
# 第一种方法
np.any(pd.isnull(df))
pd.isnull(df).any()
# 第二种方法
pd.notnull(df).all()
np.all(pd.notnull(df))

2) 删除缺失值

df.dropna()

3) 缺失值替换为平均数

value = df['attrs'].mean() #填补位置为平均值
df.fillna(value,inplace=False)

1.2 缺失值是其他种类

先要替换,然后再处理

df.replace(to_replace='?',value=np.nan)

然后进行1.1小结的处理

2. 数据离散化

1)分组 自动分组 pd.qcut(data,bins) 自定义分组 pd.cut(data,[]) 2) 分组好的结果转换为one-hot编码 pd.get_dummies(sr,prefix=) eg 自动分组

data = pd.Series类型
sr = pd.qcut(data,3)  #sr.value_counts() 看每组的数量
pd.get_dummies(sr,prefix='XXX')

eg 自定义分组

bins = [1,2,5,6]
sr = pd.cut(data,bins) 
pd.get_dummies(sr,prefix='XXX')

3. 合并

1) 按方向拼接 pd.concat([data1,data2],axis=1) #水平拼接 2) 按索引拼接 pd.merge(left,right,how=’inner’,on=[索引])

4. 交叉表和透视表

pd.crosstable(星期数据列,长跌幅数据列)

5. 分组与聚合

DataFrame.groupby(key= , as_index) 此时没有结果,需要使用聚合函数进行聚合

聚合函数包括:min()/max()/var()/…