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=None 且 data 中的值没有分配任何类别时。
- 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