pandas.from_dummies#

pandas.from_dummies(data, sep=None, default_category=None)[源代码]#

从虚拟变量的 DataFrame 创建一个分类 DataFrame。

反转 get_dummies() 执行的操作。

在 1.5.0 版本加入.

Parameters:
dataDataFrame

包含虚拟编码变量的数据,形式为 1 和 0 的整数列。

sepstr,默认 None

虚拟类别中使用的分隔符是列名中的字符,指示分隔分类名称与前缀的字符。例如,如果您的列名是 ‘prefix_A’ 和 ‘prefix_B’,您可以通过指定 sep=’_’ 来删除下划线。

default_categoryNone, Hashable 或 dict of Hashables, default None

默认类别是在值没有列出的任何类别(即一行中的所有虚拟变量都为零)时隐含的类别。它可以是所有变量的单个值,或者是一个直接将默认类别映射到变量前缀的字典。

Returns:
DataFrame

从虚拟输入数据解码的分类数据。

Raises:
ValueError
  • 当输入 DataFrame data 包含 NA 值时。

  • 当输入 DataFrame data 包含的分隔符与 sep 指定的分隔符不匹配时。

  • 当传递给 default_category 的 dict 没有为每个前缀包含隐含类别时。

  • data 中的值被分配了多个类别时。

  • default_category=Nonedata 中的值没有分配任何类别时。

TypeError
  • 当输入 data 的类型不是 DataFrame 时。

  • 当输入 DataFrame data 包含非虚拟数据时。

  • 当传递的 sep 的数据类型错误时。

  • 当传递的 default_category 的数据类型错误时。

参见

get_dummies()

将 Series 或 DataFrame 转换为虚拟编码。

Categorical

在 classic 中表示分类变量。

Notes

传入的虚拟数据的列应仅包含 1 和 0,或布尔值。

Examples

>>> df = pd.DataFrame({"a": [1, 0, 0, 1], "b": [0, 1, 0, 0],
...                    "c": [0, 0, 1, 0]})
>>> df
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0
>>> pd.from_dummies(df)
0     a
1     b
2     c
3     a
>>> df = pd.DataFrame({"col1_a": [1, 0, 1], "col1_b": [0, 1, 0],
...                    "col2_a": [0, 1, 0], "col2_b": [1, 0, 0],
...                    "col2_c": [0, 0, 1]})
>>> df
      col1_a  col1_b  col2_a  col2_b  col2_c
0       1       0       0       1       0
1       0       1       1       0       0
2       1       0       0       0       1
>>> pd.from_dummies(df, sep="_")
    col1    col2
0    a       b
1    b       a
2    a       c
>>> df = pd.DataFrame({"col1_a": [1, 0, 0], "col1_b": [0, 1, 0],
...                    "col2_a": [0, 1, 0], "col2_b": [1, 0, 0],
...                    "col2_c": [0, 0, 0]})
>>> df
      col1_a  col1_b  col2_a  col2_b  col2_c
0       1       0       0       1       0
1       0       1       1       0       0
2       0       0       0       0       0
>>> pd.from_dummies(df, sep="_", default_category={"col1": "d", "col2": "e"})
    col1    col2
0    a       b
1    b       a
2    d       e