仅当列中存在特定条件值时才进行分组

菜鸟

我有一个 df

Key1  Key2   Condition  Score
K11   K21     100        1000
K11   K21     200        3000
K11   K21     100        2000
K12   K22     100        12
K12   K22     200        133
K12   K22     100        300
K14   K24     100        144
K14   K24     200        122
K14   K24     100        4000

我想对键列进行分组Key1并且Key2 仅当条件为 100并找到 Score 的最大值时。

 df_trial=(df['Condition']=='100').groupby(['Key1','Key2'], as_index=False).max('Score')

此代码似乎不起作用并给出错误。我怎样才能达到所需的输出

预期输出

Key1  Key2   Condition  max_Score
K11   K21     100        2000
K12   K22     100        300
K14   K24     100        4000
碧山宝德尔

这应该工作

import numpy as np
import pandas as pd


df = pd.DataFrame({'Key1': ['K11', 'K11', 'K11', 'K12', 'K12', 'K12', 'K14', 'K14', 'K14'],
          'Key2': ['K21', 'K21', 'K21', 'K22', 'K22', 'K22', 'K24', 'K24', 'K24'],
          'Condition': [100, 200, 100, 100, 200, 100, 100, 200, 100],
          'Score': [1000, 3000, 2000, 12, 133, 300, 144, 122, 4000]})

cond = df['Condition']==100
df_out = df.loc[cond].groupby(["Key1", "Key2"])['Score'].max().reset_index()
print(df_out)



   Key1 Key2  Score
0  K11  K21   2000
1  K12  K22    300
2  K14  K24   4000

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据特定条件对列中的字段进行分组

仅当集合中的所有项目都符合特定条件时,才返回集合ID

仅当熊猫的某一列中存在某个值时,Groupby才进行计数

仅当特定列中不存在值时才更新表

仅当其他列具有条件时,才对列中的唯一值进行计数

R 根据特定条件对所有列中的数据进行分组并减去行

如果仅在MongoDB中满足特定条件,则进行分组

根据SQL Server中的特定条件对行进行分组

仅当特定列的值不存在时才获取行值

当且仅当嵌套对象中存在特定键时,才需要JSON模式条件

仅当行以特定条件开头时,RegEx 才匹配行内的模式

仅当表 B 中不存在特定值时才从表 A 中获取值

仅当列值不包含任何特定前缀时才进行concat

仅当表中某处的特定列中的数据不存在时,才插入MySQL行

如何根据python中的特定条件对值进行排序?

仅当字符串存在于特定列中时才打印行

仅当列中不存在值时才尝试执行SQL命令

仅当表中不存在该值时才更新SQL列

仅当文本文件中存在列的值时,才从.anno文件获取行

在计算与特定条件匹配的列中的值之间的差异时需要帮助

给定特定条件时,通过用户定义的函数在熊猫数据框的列中输入值

只有在满足特定条件时才更改列,否则不要修改它

仅当满足多个条件时,才将不同列中的值匹配到行

仅当参数等于特定值时才如何更新列?

满足特定条件后在列中查找值

如何根据特定条件替换列中的某些值?

在SQL中使用特定条件对明智的Last Null值进行分组

仅当匹配 Eloquent 中的 ID 时才选择特定列

仅当满足特定条件时,如何才能通过现场工作进行订购?