首页 > 解决方案 > python - 如何将从单个分类变量创建的多个虚拟变量列合并到python中的单个列中?

问题描述

我正在研究具有许多分类变量的 IPL 数据集,其中一个变量是 toss_winner。我为此创建了虚拟变量,现在我有 15 列具有二进制值。我想将所有这些列合并为单列,每个数字代表 IPL 团队的数字 0-14。

虚拟变量的屏幕截图

标签: pythonpandasdataframemachine-learning

解决方案


IIUC,用途:

df['Team No.'] = dummies.cumsum(axis=1).ne(1).sum(axis=1)

例子,

df = pd.DataFrame({'Toss winner': ['Chennai', 'Mumbai', 'Rajasthan', 'Banglore', 'Hyderabad']})
dummies = pd.get_dummies(df['Toss winner'])
df['Team No.'] = dummies.cumsum(axis=1).ne(1).sum(axis=1)

结果:

# print(dummies)
   Banglore  Chennai  Hyderabad  Mumbai  Rajasthan
0         0        1          0       0          0
1         0        0          0       1          0
2         0        0          0       0          1
3         1        0          0       0          0
4         0        0          1       0          0

# print (df)
  Toss winner  Team No.
0     Chennai         1
1      Mumbai         3
2   Rajasthan         4
3    Banglore         0
4   Hyderabad         2

推荐阅读