pandas get_dummies用法及代码示例

get_dummies 是 pandas 实现one hot encode的方式

​ one-hot的基本思想:将离散型特征的每一种特征取值都看成一种状态,若指定离散特征中有N个

不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会

使得一种状态处于”激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。

1.语法结构

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)

参数说明:

data : array-like, Series, or DataFrame
输入数据
prefix : string, list of strings, or dict of strings, default None
给输出的列添加前缀,如prefix=”A”,输出的列会显示类似
prefix_sepstr, default ‘_’
​ 设置前缀跟分类的分隔符sepration,默认是下划线”_”
dummy_na : bool, default False
​ 增加一列表示空缺值,如果False就忽略空缺值
columns : list-like, default None
​ 指定需要实现类别转换的列名
sparsebool, default False
​ 哑编码列是否应该支持SparseArray (True)或常规NumPy数组(False)。
drop_first : bool, default False
​ 获得k中的k-1个类别值,去除第一个
dtypedtype, default np.uint8
​ 新列的数据类型,只允许一种类型的dtype

Return

DataFrame 返回哑编码后的DataFrame

2.代码示例

2.1 代码示例1

需求:对DataFrame中的所有列进行哑编码

import pandas as pd

students_df = pd.DataFrame({
    'Id': [302, 504, 708, 103, 303],
    'Name': ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
    'Sex': ['Male', 'Female', 'Male', 'Male', 'Female'],
})

students_df_dummies = pd.get_dummies(students_df)
print(students_df)
print(students_df_dummies)

pandas get_dummies用法及代码示例
pandas get_dummies用法及代码示例

2.2 代码示例2

需求:设置 columns 只为指定的列进行哑编码

import pandas as pd

students_df = pd.DataFrame({
    'Id': [302, 504, 708, 103, 303],
    'Name': ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
    'Sex': ['Male', 'Female', 'Male', 'Male', 'Female'],
})
students_df_dummies = pd.get_dummies(students_df, columns=["Sex"])

print(students_df)
print(students_df_dummies)

pandas get_dummies用法及代码示例

2.3 代码示例3

需求:设置prefix来修改哑编码后的列

import pandas as pd

students_df = pd.DataFrame({
    'Id': [302, 504, 708, 103, 303],
    'Name': ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
    'Sex': ['Male', 'Female', 'Male', 'Male', 'Female'],
})

students_df_dummies = pd.get_dummies(students_df, columns=["Sex"], prefix="Column")

print(students_df)
print(students_df_dummies)

pandas get_dummies用法及代码示例

3.总结

OneHotEncoder方式之pd.get_dummies得优缺点:

优点:解决了分类器不好处理分类数据的问题,在一定程度上也起到了扩充特征的作用。它的值只有

0和1,不同的类型存储在垂直的空间。

缺点:当类别的数量很多时,特征空间会变得非常大,容易造成维度灾难,尤其是对ID类型特征的处理。

参考链接:
1.https://blog.csdn.net/weixin_38664232/article/details/89048263
2.https://zhuanlan.zhihu.com/p/139144355
3.https://www.delftstack.com/zh/howto/python-pandas/get-dummies-pandas/

Original: https://blog.csdn.net/weixin_44852067/article/details/122242856
Author: 独影月下酌酒
Title: pandas get_dummies用法及代码示例

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/678701/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球