【发布时间】:2021-07-11 02:24:33
【问题描述】:
我正在研究一个数据集,该数据集具有称为类别的功能。该特征中每个观察的数据由分号分隔的列表组成,例如。
| Rows | categories |
|---|---|
| Row 1 | "categorya;categoryb;categoryc" |
| Row 2 | "categorya;categoryb" |
| Row 3 | "categoryc" |
| Row 4 | "categoryb;categoryc" |
如果我尝试pd.get_dummies(df,columns=['categories'])
我以列的形式返回包含全部数据的列,例如名为 categorya;categoryb;categoryc 的列
如果我尝试
pd.get_dummies(df.categories.str.split(";").apply(pd.Series).stack(),columns=['categories'])
我得到单独的列名,例如类别a,类别b。
但我只会在一列中得到 1,例如如果原始类别值为“categoryb;categoryc”,我只会在 b 中得到 1 而不是 c 值。
我感觉除了编码问题之外,我的方法可能会犯一个根本性错误?
【问题讨论】:
标签: python pandas encoding one-hot-encoding