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

如何将DataFrame中的每三列转换为行形式?

解决方案

你可以借助 pandas 结合 numpy 的数组重塑功能快速实现需求,步骤如下:

1. 构造示例 DataFrame(已有数据可跳过)

import pandas as pd

data = {
    'col1': ['a1', 'a2'],
    'col2': ['b1', 'b2'],
    'col3': ['c1', 'c2'],
    'col4': ['d1', 'd2'],
    'col5': ['e1', 'e2'],
    'col6': ['f1', 'f2'],
    'col7': ['g1', 'g2'],
    'col8': ['h1', 'h2'],
    'col9': ['i1', 'i2']
}
df = pd.DataFrame(data)

2. 执行列转行操作

核心是利用数组重塑,将原数据按每3列一组转换为行:

# 将DataFrame转为numpy数组后重塑,再转回DataFrame并设置列名
result_df = pd.DataFrame(df.values.reshape(-1, 3), columns=['col1', 'col2', 'col3'])

运行后得到的 result_df 就是目标格式:

col1 col2 col3
0   a1   b1   c1
1   a2   b2   c2
2   d1   e1   f1
3   d2   e2   f2
4   g1   h1   i1
5   g2   h2   i2

原理说明

  • df.values:将DataFrame转换为numpy二维数组,保留原始数据的顺序
  • reshape(-1, 3):自动计算行数(总元素数 ÷ 3),固定列数为3,实现每3列数据转为一行的效果
  • 最后重新指定列名,匹配目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:15:33