pandas.get_dummies
是 pandas 库中的一个函数,它用于将分类变量转换为哑变量/指示变量。pandas.get_dummies(
data,
prefix=None,
prefix_sep='_',
dummy_na=False,
columns=None,
sparse=False,
drop_first=False,
dtype=None)
data | 你想要转换为哑变量的数据 |
prefix | 用于在DataFrame列名前添加的字符串。 当对DataFrame调用 get_dummies 时,传递一个长度等于列数的列表 |
dummy_na | 布尔值,默认为 False。是否添加一列来指示 NaN 值,如果为 False 则忽略 NaN 值 |
columns | 类列表,默认为 None。 在 DataFrame 中要编码的列名。 如果 columns 为 None,则所有具有 object、string 或 category 数据类型的列都将被转换 |
sparse | 布尔值,默认为 False。 哑变量编码的列是否应该由 SparseArray(True)支持,还是由常规的 NumPy 数组(False)支持 |
drop_first | 布尔值,默认为 False。是否通过移除第一个级别,从 k 个分类级别中获取 k-1 个哑变量 |
import pandas as pd
import numpy as np
s=pd.Series(list('abca'))
s
'''
0 a
1 b
2 c
3 a
dtype: object
'''
pd.get_dummies(s)
'''
a b c
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
'''
此时第一个类就是 全0 向量对应的情况
pd.get_dummies(s,drop_first=True)
'''
b c
0 0 0
1 1 0
2 0 1
3 0 0
'''
是否为NaN单列一列
s1 = pd.Series(['a', 'b', np.nan])
s1
'''
0 a
1 b
2 NaN
dtype: object
'''
pd.get_dummies(s1)
'''
a b
0 1 0
1 0 1
2 0 0
'''
pd.get_dummies(s1,dummy_na=True)
'''
a b NaN
0 1 0 0
1 0 1 0
2 0 0 1
'''
df = pd.DataFrame({'A': ['a', 'b', 'a'],
'B': ['b', 'a', 'c'],
'C': [1, 2, 3]})
df
'''
A B C
0 a b 1
1 b a 2
2 a c 3
'''
pd.get_dummies(df)
'''
C A_a A_b B_a B_b B_c
0 1 1 0 0 1 0
1 2 0 1 1 0 0
2 3 1 0 0 0 1
'''
df = pd.DataFrame({'A': ['a', 'b', 'a'],
'B': ['b', 'a', 'c'],
'C': [1, 2, 3]})
df
'''
A B C
0 a b 1
1 b a 2
2 a c 3
'''
pd.get_dummies(df,prefix=['col1','col2'])
'''
C col1_a col1_b col2_a col2_b col2_c
0 1 1 0 0 1 0
1 2 0 1 1 0 0
2 3 1 0 0 0 1
'''