天天看点

python--Pandas高级处理

@

目录

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. 综合案例

python--Pandas高级处理

缺失值处理

数据离散化

合并

交叉表与透视表

分组与聚合

综合案例

删除含有缺失值的样本

替换/插补

判断数据中是否存在nan

<code>pd.isnull(df)</code>

<code>pd.notnull(df)</code>

python--Pandas高级处理

<code>df.dropna(inplace=false, axis='rows')</code> 不会修改原数据,需要接受返回值

<code>df.fillna(value, inplace=false)</code>

<code>values</code> : 替换成的值

<code>inplace</code> :true 会修改原数据 false 不会修改原数据,生成新的对象

python--Pandas高级处理

替换 <code>?-&gt; np.nan</code>

<code>df.replace(to_replace="?", value=np.nan)</code>

<code>to_replace</code>:替换前的值

<code>value</code>:替换后的值

处理<code>np.nan</code>缺失值的步骤

python--Pandas高级处理

性别

年龄

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>: 分组名字

python--Pandas高级处理
python--Pandas高级处理

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>

python--Pandas高级处理
python--Pandas高级处理

找到、探索两个变量之间的关系

<code>pd.crosstab(value1, value2)</code>

python--Pandas高级处理

<code>dataframe.groupby(key, as_index=false)</code>

<code>key</code>:分组的列数据,可以多个

案例:不同颜色的不同笔的价格数据

python--Pandas高级处理
python--Pandas高级处理