You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需将列重命名为q前缀,能否实现Pandas筛选与分组聚合?

解决方案:无需重命名列即可实现筛选+分组聚合

当然可以不用把列重命名成q前缀,直接通过指定目标列列表就能实现需求,逻辑反而更清晰。

具体实现步骤:

  1. 先定义好需要做聚合计算的目标列清单(就是你原本要改成q1-q6的那些列):
target_cols = ['Name', 'Age', 'Weight', 'Height', 'DOB', 'Donor']
  1. 直接通过两种写法完成分组聚合:

写法一(推荐,逻辑更直观):

df_result = df.groupby(['Type', 'DATE'])[target_cols].agg(lambda x: x.eq(4).sum() / x.count())

写法二:

df_result = df[target_cols].groupby([df['Type'], df['DATE']]).agg(lambda x: x.eq(4).sum() / x.count())

补充提醒:

你原来的代码有个小问题:把Name重命名成q1之后,groupby里还写df['Name']会触发列不存在的报错,因为此时列名已经变成q1了。用上面的方法可以避免这个问题,还能明确区分分组用的列(比如Type、DATE)和需要聚合计算的列。

内容的提问来源于stack exchange,提问作者Skywalker5032

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:15:07