@
目录
pandas高级处理
1. 高级处理-缺失值处理
1.1 如何进行缺失值处理
两种思路:
如何处理nan
不是缺失值nan,有默认标记的
2. 高级处理-数据离散化
one-hot编码&哑变量
2.1 什么是数据的离散化
2.2 为什么要离散化
2.3 如何实现数据的离散化
3. 高级处理-合并
4. 高级处理-交叉表与透视表
4.1 交叉表与透视表什么作用
4.2 使用crosstab(交叉表)实现
4.3 pivot_table
5. 高级处理-分组与聚合
5.1 什么是分组与聚合
5.2 分组与聚合api
6. 综合案例
缺失值处理
数据离散化
合并
交叉表与透视表
分组与聚合
综合案例
删除含有缺失值的样本
替换/插补
判断数据中是否存在nan
<code>pd.isnull(df)</code>
<code>pd.notnull(df)</code>
<code>df.dropna(inplace=false, axis='rows')</code> 不会修改原数据,需要接受返回值
<code>df.fillna(value, inplace=false)</code>
<code>values</code> : 替换成的值
<code>inplace</code> :true 会修改原数据 false 不会修改原数据,生成新的对象
替换 <code>?-> np.nan</code>
<code>df.replace(to_replace="?", value=np.nan)</code>
<code>to_replace</code>:替换前的值
<code>value</code>:替换后的值
处理<code>np.nan</code>缺失值的步骤
性别
年龄
a
1
23
b
2
30
c
18
物种
毛发
3
下边更合理
男
女
狗
猪
老鼠
原始的身高数据:165,174,160,180,159,163,192,184
对数据进行分组
自动分组<code>sr=pd.qcut(data, bins)</code>
- 自定义分组<code>sr=pd.cut(data, bins)</code>
- 对数据进行分组将数据分组一般会与<code>value_counts</code>搭配使用,统计每组的个数
<code>series.value_counts()</code> :统计分组次数
将分组好的结果转换成one-hot编码
<code>pd.get_dummies(data, prefix=none)</code>
<code>data</code>: array-like, series, or dataframe
<code>prefix</code>: 分组名字
numpy
np.concatnate((a, b), axis=)
水平拼接
np.hstack()
竖直拼接
np.vstack()
按方向拼接
<code>pd.concat([data1, data2], axis=1)</code>
按照行或列进行合并,axis=0为列索引,axis=1为行索引
按索引拼接
<code>pd.merge</code>实现合并
<code>pd.merge(left, right, how="inner", on=[索引])</code>
找到、探索两个变量之间的关系
<code>pd.crosstab(value1, value2)</code>
<code>dataframe.groupby(key, as_index=false)</code>
<code>key</code>:分组的列数据,可以多个
案例:不同颜色的不同笔的价格数据