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
- '''