通过分组创建虚拟变量

我有一个包含玩家、队伍和胜利的DataFrame。我想创建一个新的DataFrame,其中队伍作为索引,并且表示玩家x是否在该队伍中,以及该队伍是否获胜。

pd.DataFrame(data=[['Team A', 1], ['Team B', 0], ['Team B', 0], ['Team A', 1]], columns=['TEAM', 'WIN'], index=['Player 1', 'Player 2', 'Player 3', 'Player 4'])            TEAM  WINPlayer 1  Team A    1Player 2  Team B    0Player 3  Team B    0Player 4  Team A    1

期望的结果:

pd.DataFrame(data=[[1, 1, 0, 0, 1], [0, 0, 1, 1, 0]], columns=['Player 1', 'Player 2', 'Player 3', 'Player 4', 'WIN'], index=['Team A', 'Team B'])        Player 1  Player 2  Player 3  Player 4  WINTeam A         1         1         0         0    1Team B         0         0         1         1    0

回答:

如果我理解正确的话,你可以使用pivot_table()方法:

In [96]: df.reset_index().pivot_table(index='TEAM', columns='index', values='WIN', fill_value=0)Out[96]:index   Player 1  Player 2  Player 3  Player 4TEAMTeam A         1         0         0         1Team B         0         0         0         0

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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