pandas.from_dummies#

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

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

反转由 get_dummies() 执行的操作。

Added in version 1.5.0.

参数:
数据DataFrame

包含以1和0整数列形式表示的虚拟编码变量的数据。

sepstr, 默认 None

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

默认类别None, 可哈希对象或可哈希对象的字典, 默认 None

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

返回:
DataFrame

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

引发:
ValueError
  • 当输入的 DataFrame data 包含 NA 值时。

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

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

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

  • default_category=None 并且 data 中的某个值没有分配类别时。

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

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

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

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

参见

get_dummies()

SeriesDataFrame 转换为虚拟编码。

Categorical

在经典中表示一个分类变量。

备注

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

示例

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