dask.dataframe.reshape.get_dummies

dask.dataframe.reshape.get_dummies

dask.dataframe.reshape.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=<class 'bool'>, **kwargs)[源代码]

将分类变量转换为哑变量/指示变量。

数据必须具有类别数据类型以推断结果的 columns

参数
数据Series, 或 DataFrame

对于 Series,dtype 必须是分类类型。对于 DataFrame,至少有一列必须是分类类型。

前缀字符串、字符串列表或字符串字典,默认值为 None

要附加到 DataFrame 列名的字符串。在调用 DataFrame 上的 get_dummies 时,传递一个长度等于列数的列表。或者,prefix 可以是一个将列名映射到前缀的字典。

prefix_sep字符串,默认值为 ‘_’

如果添加前缀,使用分隔符/定界符。或者传递一个列表或字典,如同使用 prefix 一样。

dummy_nabool, 默认 False

添加一列以指示 NaN,如果为 False,则忽略 NaN。

类似列表,默认 None

要编码的DataFrame中的列名。如果 columns 为 None,则所有具有 category 数据类型的列将被转换。

稀疏bool, 默认 False

虚拟列是否应为稀疏的。如果 data 是 Series 或所有列都包含在内,则返回 SparseDataFrame。否则返回包含一些 SparseBlocks 的 DataFrame。

0.18.2 新版功能.

drop_firstbool, 默认 False

是否通过移除第一个级别来从k个分类级别中获取k-1个虚拟变量。

dtypedtype, 默认 bool

新列的数据类型。只允许单一的数据类型。

0.18.2 新版功能.

返回
dummiesDataFrame

示例

Dask 的版本仅适用于分类数据,因为这是在不计算所有数据的情况下知道输出形状的唯一方法。

>>> import pandas as pd
>>> import dask.dataframe as dd
>>> s = dd.from_pandas(pd.Series(list('abca')), npartitions=2)
>>> dd.get_dummies(s)
Traceback (most recent call last):
    ...
NotImplementedError: `get_dummies` with non-categorical dtypes is not supported...

使用分类数据:

>>> s = dd.from_pandas(pd.Series(list('abca'), dtype='category'), npartitions=2)
>>> dd.get_dummies(s)  
Dask DataFrame Structure:
                   a      b      c
npartitions=2
0              bool  bool  bool
2                ...    ...    ...
3                ...    ...    ...
Dask Name: get_dummies, 2 graph layers
>>> dd.get_dummies(s).compute()  
       a      b      c
0   True  False  False
1  False   True  False
2  False  False   True
3   True  False  False