本文共 1392 字,大约阅读时间需要 4 分钟。
在数据分析中,get_dummies 函数是一个强大的工具,用于将分类变量转换为一组互斥的 dummy 变量。以下是关于如何使用该函数以及处理缺失值的详细指南。
首先,我们需要导入 pandas 库,并创建一个包含分类变量的 DataFrame:
import pandas as pddf = pd.DataFrame([ ['green', 'A'], ['red', 'B'], ['blue', 'A']])df.columns = ['color', 'grade'] # 为每列添加标题
接下来,使用 pd.get_dummies(df) 函数,将分类列转换为 dummy 列:
pd.get_dummies(df)
green 和 red 会被转换为 green 和 red 列。| color | grade | green | red |
|---|---|---|---|
| green | A | 1 | 0 |
| red | B | 0 | 1 |
| blue | A | 1 | 0 |
如果你只想将某一列进行分类,可以通过 pd.get_dummies() 的参数指定:
pd.get_dummies(df, columns=['grade'])
grade 列进行分类,生成 A 和 B 两列。| color | grade | A | B |
|---|---|---|---|
| green | A | 1 | 0 |
| red | B | 0 | 1 |
| blue | A | 1 | 0 |
如果需要将分类结果合并到原始 DataFrame 中,可以使用 join 函数:
df.join(pd.get_dummies(df.grade))
color 和 grade 列与新生成的分类列合并在一起。| color | grade | green | red | A | B |
|---|---|---|---|---|---|
| green | A | 1 | 0 | 1 | 0 |
| red | B | 0 | 1 | 0 | 1 |
| blue | A | 1 | 0 | 1 | 0 |
如果分类列中存在缺失值,可以通过 dummy_na=True 参数生成额外的 NaN 列:
import numpy as npdf = pd.DataFrame([ ['green', 'A'], ['red', 'B'], ['yellow', np.nan], ['blue', 'A']])df.columns = ['color', 'grade']
使用 pd.get_dummies 处理缺失值:
pd.get_dummies(df, dummy_na=True)
nan,表示缺失值对应的分类。| color | grade | green | red | A | B | nan |
|---|---|---|---|---|---|---|
| green | A | 1 | 0 | 1 | 0 | 0 |
| red | B | 0 | 1 | 0 | 1 | 0 |
| yellow | NaN | 0 | 0 | 0 | 0 | 1 |
| blue | A | 1 | 0 | 1 | 0 | 0 |
通过上述方法,你可以轻松地将分类变量转换为 dummy 变量,并处理缺失值问题。希望这篇文章能帮助你更好地掌握 pandas 库的使用!
转载地址:http://kpvfk.baihongyu.com/