python - 我想根据列将标签 0/1 分配给 pandas 数据框

标签 python pandas numpy

我对 python 相当陌生。我正在尝试在 pandas 数据框中分配标签。这就是我的数据框的外观: 最终.head(3)

Match Team1 Team2 winner       
A       2     3      3             
B       1     2      1            
C       3     1      1   

我想创建一个新列来演示谁赢得了比赛。例如,如果 Team1 获胜,则游戏标签应为 0,如果 Team2 获胜,则游戏标签应为 1。 预期结果应该是:-

Match Team1 Team2 winner label      
A       2     3      3     1        
B       1     2      1     0       
C       3     1      1     1       

请告诉我应该如何进行。提前致谢。

最佳答案

你的标签本质上是获胜者是否与 Team2 相同。所以你可以这样做

final['label'] = final['winner'].eq(final['Team2']).astype(int)

或者,如果您坚持使用 numpy,那么根据您的逻辑:

final['label'] = np.where(final['Team1'].eq(final['winner']), 0, 1)

关于python - 我想根据列将标签 0/1 分配给 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58137731/

相关文章:

Python Pandas - Lambda 应用保持初始格式

python - 将 pandas 列中的 JSON 提取到单独的列,同时使用 None 处理行

python - 我可以将 pandas.dataframe.isin() 与数字容差参数一起使用吗?

python - 在多维 numpy 数组中查找非零索引

python - 如何使用 fmin_ncg 计算成本和 theta

python - 如何在 Pygame 中打印按下控制台的特定键?

python - 一维和二维数组之间的元素明智比较

Python 识别时间序列数据框中的美国假期

python - 从外部库打印变量

python - 叠加两个 pandas Dataframes 或 numpy 数组并创建一个键值字典