【发布时间】:2018-02-22 18:05:48
【问题描述】:
python中的pandas包中有get_dummies转换,它将分类变量转换为值为0 / 1的二进制(标志)变量。这个转换是基于实际值的,但我想存储转换的代码,这样我就可以在具有较少值的其他数据集上运行它,并且仍然可以获得完整大小的转换数据结构。
假设你有这个代码:
import pandas as pd
a = [[5,12,"blue"], [8,53,"yellow"]]
df = pd.DataFrame(a, columns=['Weight','Size','Color'])
df.apply(pd.to_numeric, errors='ignore')
df
产生这些数据:
Weight Size Color
5 12 blue
8 53 yellow
和:
df = pd.get_dummies(df)
df
产生这个:
Weight Size Color_blue Color_yellow
5 12 1 0
8 53 0 1
我想存储这个原始转换,以便以后获得记录,例如:
[2,9,"blue"]
我仍然可以得到整个结构,比如:
Weight Size Color_blue Color_yellow
2 9 1 0
Get_dummies 将在后一种情况下省略 Color_yellow 列...
什么是最简单的解决方案?
我正在考虑构建我自己的 get_dummies 函数,它遍历所有分类变量,获取所有可能的不同值,然后生成执行转换的 python 函数的代码。但必须有一些已经实施的解决方案......
【问题讨论】:
标签: python pandas dummy-variable