python - 使用该数据帧的三列之间的比较过滤数据帧
问题描述
我正在使用一个包含 100 万行的数据框。我试图尽可能简单地复制数据框。下面是简单的数据框。
df = pd.DataFrame()
df['Match'] = ['A Vs B','A Vs B','A Vs B','A Vs B','A Vs B','C Vs D','C Vs D','C Vs D','C Vs D','C Vs D','C Vs D']
df ['Hwin'] = [1,1,1,0,0,0,0,1,0,0,0]
df ['Awin'] = [0,0,0,1,0,1,0,0,0,1,1]
df ['Draw'] = [0,0,0,0,1,0,1,0,1,0,0]
我的实际数据框包含 30 多个列。我想做的事情如下:我只想为每场比赛保留一行,其中HWin Draw Awin中的一列之和大于其余两列。我的预期输出如下:
我怎样才能做到这一点?非常感谢您的建议。谢谢,
泽普。
解决方案
IIUC 需要groupby
+ transform
,然后我们做 rowmax
和idxmax
s=df.groupby(df.columns.tolist())[['Hwin','Awin','Draw']].transform('sum')
df.loc[s.max(1).groupby(df.Match).idxmax()]
Match Hwin Awin Draw
0 A Vs B 1 0 0
5 C Vs D 0 1 0
推荐阅读
- c - LAPACK,dgeev_ 为随机矩阵提供错误的特征向量
- android - Toast 的功能:setGravity() - 不改变位置
- typescript - 打字稿通过项目传播选项
- c# - Elastic NEST 客户端如何按嵌套属性排序
- python - 如何在 Django 的投票应用程序中对所有问题使用相同的选择
- python - 如何“实时”获取浏览器中正在访问的 URL?
- python - 如何让我的不和谐机器人对我的消息做出反应
- docker - sql容器问题的Docker格式化密码
- python - 训练模型后 Jupyter Notebook GPU 内存释放
- typescript - 键的打字稿联合类型,字典值的推断类型