pandas - 通过分组创建虚拟变量

标签 pandas machine-learning dummy-variable

我有一个代表玩家、团队和胜利的 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  WIN
Player 1  Team A    1
Player 2  Team B    0
Player 3  Team B    0
Player 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  WIN
Team A         1         1         0         0    1
Team B         0         0         1         1    0

最佳答案

IIUC您可以使用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 4
TEAM
Team A         1         0         0         1
Team B         0         0         0         0

关于pandas - 通过分组创建虚拟变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42727667/

相关文章:

machine-learning - 分类变量的降维

从 R 中的虚拟对象重建分类变量

python - 如何将二进制变量的 DataFrame 列转换为多列虚拟变量

python pandas 将 3 列数据对传递到循环和 MySQL 查询中

c# - Accord.Net - LibLinear 上的 CacheSize

python - 在 SciPy 中多核上运行 SVM 代码?

machine-learning - 找不到tensorflow中的gen_word2vec

python - Pandas dataframe打印语句,格式化每行一行,无索引

python - 在多个条件下从数据框中过滤行,获取 ValueError

python - 使用 pandas 获取聚合行值的样本