You need to enable JavaScript to run this app. 如何按行名称分组计算各列中位数并生成新的DataFrame
优惠活动
大模型
产品
解决方案
定价
更多

如何按行名称分组计算各列中位数并生成新的DataFrame

实现方法

你可以直接用Pandas的分组聚合功能实现,步骤如下:

  • 首先确认你的NAME字段是分组依据,如果是普通列直接用groupby方法,如果是DataFrame的索引可以调整分组参数。
  • 调用median()方法对分组后的各数值列计算中位数,之后调整列名即可匹配你的预期输出格式。

参考代码

import pandas as pd

# 假设你的原始DataFrame名为df
# 按NAME列分组,计算各数值列中位数
result_df = df.groupby('NAME', as_index=False).median()

# 重命名列匹配预期格式
result_df = result_df.rename(columns={
    "NAME": "Name",
    "Value 1": "Value 1 (median)",
    "Value 2": "Value 2 (median)",
    "Value 3": "Value 3 (median)"
})

如果你的NAME是DataFrame的索引而非普通列,修改分组逻辑即可:

result_df = df.groupby(level=0).median().reset_index()
# 后续重命名列的逻辑和上面一致

效果验证

我们可以用模拟数据测试:

# 模拟测试数据
df = pd.DataFrame({
    'NAME': ['Row 1', 'Row 1', 'Row 1', 'Row 2', 'Row 2', 'Row 2', 'Row 3', 'Row 3', 'Row 3'],
    'Value 1': [6,7,8,2,3,4,3,4,5],
    'Value 2': [4,5,6,0,1,2,5,6,7],
    'Value 3': [1,2,3,6,7,8,0,1,2]
})

运行上述代码后得到的result_df和你给出的预期输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 04:21:03