pandas DataFrame如何按Field1分组筛选后计算Field2最大值生成新标记列
你的代码存在两个核心问题:
- 读取csv文件时没有将结果赋值给
df变量,后续操作df会直接抛出未定义错误 - 现有逻辑仅计算了分组内Field2的最大值,没有实现「分组长度大于2」、「当前行Field2等于组内最大值」的双重判断逻辑
修正后可直接运行的代码
import pandas as pd # 读取数据并赋值给df变量 df = pd.read_csv("c:/test.csv") # 按Field1分组,分别计算每个分组的记录数、Field2最大值 g = df.groupby("Field1")["Field2"] group_cnt = g.transform("count") group_max_val = g.transform("max") # 生成Field3字段:同时满足分组长度>2、当前行Field2为组内最大值时为True,否则为False df["Field3"] = (group_cnt > 2) & (df["Field2"] == group_max_val)
上述代码默认不符合条件的行返回False,和你的预期输出效果一致。
内容的提问来源于stack exchange,提问作者bibiji
相关产品推荐
相关产品推荐

