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

如何在Python Pandas DataFrame中对相邻n列求均值合并?

解决方案

直接利用pandas的groupby按列分组求均值即可实现,以下是具体步骤:

1. 核心思路

将原DataFrame的列按每4列一组划分,对每组内的列计算均值,生成新的列,最终得到500列的结果。

2. 代码实现

示例验证(模拟你的测试数据)

import pandas as pd
import numpy as np

# 模拟你给出的A-H列测试数据
df = pd.DataFrame(
    data=[[1,1,1,1,2,2,2,2]],
    columns=['A','B','C','D','E','F','G','H']
)

# 生成分组键:每4列对应同一个组编号
group_keys = [i // 4 for i in range(len(df.columns))]

# 按列分组计算均值,并重命名新列
reduced_df = df.groupby(group_keys, axis=1).mean()
# 用原每组的第一个列名作为新列名(也可自定义命名)
reduced_df.columns = [df.columns[i*4] for i in range(len(reduced_df.columns))]

print(reduced_df)

输出结果:

A  B
0  1  2

适配2000列的场景

对于2000列的DataFrame,上述代码无需修改即可直接运行:

  • group_keys会自动生成500个组编号(0到499),每个编号对应4列
  • groupby(axis=1)会按列分组,每组计算均值后生成500个新列

自定义新列名(可选)

如果不需要沿用原列名,可自定义新列名,比如按"合并组1"、"合并组2"命名:

reduced_df.columns = [f'合并组_{i+1}' for i in range(len(reduced_df.columns))]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:15:49