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

如何将DataFrame中每50行横向堆叠为单行?

300行×6列DataFrame分块横向堆叠实现方案

针对你需求的300行×6列DataFrame,将每50行×6列横向堆叠为1行×300列,这里提供两种高效的实现方法:

方法一:Pandas分组处理

适合需要保留分组逻辑或后续有扩展需求的场景:

import pandas as pd
import numpy as np

# 构造示例DataFrame(替换成你的实际数据)
df = pd.DataFrame(np.random.randint(0, 100, size=(300, 6)))

# 按索引每50行分组,将每组扁平化后转为单行,再拼接结果
result = df.groupby(df.index // 50).apply(lambda chunk: pd.Series(chunk.values.flatten())).reset_index(drop=True)
  • df.index // 50 生成0-5的分组标识,将原DataFrame拆分为6个50行×6列的子块
  • chunk.values.flatten() 将每个子块从二维数组转为一维(长度300)
  • 最终得到6行×300列的结果,每一行对应原数据中连续50行横向堆叠后的内容

方法二:Numpy数组重塑(更高效)

如果数据量较大,推荐用Numpy的reshape操作,速度更快:

import pandas as pd
import numpy as np

# 构造示例DataFrame
df = pd.DataFrame(np.random.randint(0, 100, size=(300, 6)))

# 直接重塑数组结构,再转回DataFrame
result = pd.DataFrame(df.values.reshape(6, 50*6))
  • df.values.reshape(6, 50*6) 一步将300×6的数组转为6×300的数组,完成分块和横向堆叠
  • 这种方法无需分组操作,性能更优,适合大规模数据处理

两种方法最终输出的结果结构一致,都是6行×300列的DataFrame,每行对应原数据中50行横向拼接后的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:25:22