如何基于pandas DataFrame指定列筛选数据并按列分组求均值
Pandas 按Y列分组求I列均值的最简实现
直接使用pandas内置的groupby聚合方法即可实现需求,无需转numpy数组循环处理。
完整实现代码
# 你已完成的isValid筛选步骤,建议加copy避免链式索引警告 df_valid = df.loc[df['isValid'] == 1].copy() # (可选)如果需要匹配你给出的预期输出(排除I=0的行参与均值计算),打开下面一行注释 # df_valid = df_valid[df_valid['I'] != 0] # 按Y分组求I的均值,as_index=False让Y作为普通列输出,匹配你要的结果格式 result = df_valid.groupby('Y', as_index=False)['I'].mean()
输出结果说明
- 不加可选筛选步骤时,输出结果为:
| Y | I |
|---|---|
| -15.63 | 17.5 |
| -28.23 | 13.333333 |
- 加可选筛选步骤后,完全匹配你给出的预期输出:
| Y | I |
|---|---|
| -15.63 | 17.5 |
| -28.23 | 20.0 |
内容的提问来源于stack exchange,提问作者Jesh Kundem
相关产品推荐
相关产品推荐

