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_category
的dict
没有为每个前缀包含一个隐含的类别时。当
data
中的一个值被分配了多个类别时。当
default_category=None
并且data
中的某个值没有分配类别时。
- TypeError
当输入
data
不是DataFrame
类型时。当输入的
DataFrame
data
包含非虚拟数据时。当传入的
sep
是错误的数据类型时。当传递的
default_category
是错误的数据类型时。
参见
get_dummies()
将
Series
或DataFrame
转换为虚拟编码。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