pandas.get_dummies¶
-
pandas.
get_dummies
(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)[source]¶ 将分类变量转换为虚拟/指示符变量
参数: data:array-like,Series或DataFrame
前缀:string,字符串列表或字符串的dict,默认为None
附加DataFrame列名的字符串在DataFrame上调用get_dummies时传递长度等于列数的列表。或者,前缀可以是将列名称映射到前缀的字典。
prefix_sep:string,default'_'
如果追加prefix,separator / delimiter来使用。或者传递与前缀一样的列表或字典。
dummy_na:bool,default False
添加一列以指示NaN,如果忽略False NaNs。
列:list-like,默认值无
要编码的DataFrame中的列名称。如果列为None,那么所有包含对象或类别 dtype的列都将被转换。
sparse:bool,default False
虚拟列是否应该稀疏。如果数据是系列或如果包括所有列,则返回SparseDataFrame。否则返回一个带有一些SparseBlocks的DataFrame。
版本0.16.1中的新功能。
drop_first:bool,default False
是否通过删除第一级别从k个分类级别中获取k-1个虚拟变量。
版本0.18.0中的新功能。
返回
---
dummies:DataFrame或SparseDataFrame
也可以看看
例子
>>> import pandas as pd >>> s = pd.Series(list('abca'))
>>> pd.get_dummies(s) a b c 0 1 0 0 1 0 1 0 2 0 0 1 3 1 0 0
>>> s1 = ['a', 'b', np.nan]
>>> 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]})
>>> 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
>>> pd.get_dummies(pd.Series(list('abcaa'))) a b c 0 1 0 0 1 0 1 0 2 0 0 1 3 1 0 0 4 1 0 0
>>> pd.get_dummies(pd.Series(list('abcaa')), drop_first=True)) b c 0 0 0 1 1 0 2 0 1 3 0 0 4 0 0