如何将从单一分类变量创建的多个虚拟变量列合并为Python中的单一列?

我正在处理IPL数据集,其中包含许多分类变量,其中一个变量是toss_winner。我为这个变量创建了虚拟变量,现在我有15列的二进制值。我想将所有这些列合并为一个单一列,列中的数字从0到14,每个数字代表一个IPL球队。

虚拟变量的屏幕截图


回答:

如果我理解正确,使用以下方法:

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  Rajasthan0         0        1          0       0          01         0        0          0       1          02         0        0          0       0          13         1        0          0       0          04         0        0          1       0          0# print (df)  Toss winner  Team No.0     Chennai         11      Mumbai         32   Rajasthan         43    Banglore         04   Hyderabad         2

Related Posts

神经网络反向传播代码不工作

我需要编写一个简单的由1个输出节点、1个包含3个节点的…

值错误:y 包含先前未见过的标签:

我使用了 决策树分类器,我想将我的 输入 作为 字符串…

使用不平衡数据集进行特征选择时遇到的问题

我正在使用不平衡数据集(54:38:7%)进行特征选择…

广义随机森林/因果森林在Python上的应用

我在寻找Python上的广义随机森林/因果森林算法,但…

如何用PyTorch仅用标量损失来训练神经网络?

假设我们有一个神经网络,我们希望它能根据输入预测三个值…

什么是RNN中间隐藏状态的良好用途?

我已经以三种不同的方式使用了RNN/LSTM: 多对多…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注