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

如何将pandas DataFrame的每一行转换为指定尺寸的2D数组

实现方法

前提校验

你需要先确认预期转换的2D尺寸m × n满足 m * n = 36(你的特征维度总数),否则无法完成特征对齐转换,比如示例中的4×9是合法的,6×6、3×12等组合也可以使用。

核心思路

利用numpy的reshape方法对特征数组做维度变换,变换后的样本顺序和原DataFrame完全一致,天然和标签列的顺序一一对应。

代码实现

批量转换(效率最高,推荐使用)

import numpy as np

# 自定义2D尺寸
m = 4
n = 9

# 特征转换:X_df是你的特征DataFrame
X_2d = X_df.to_numpy().reshape(-1, m, n)
# 标签转换:y_df是你的标签DataFrame,和X_2d顺序完全匹配
y_arr = y_df.to_numpy()

reshape中的-1会自动匹配样本总数(你的场景下为3259),无需手动填写。转换后X_2d的形状为(3259, 4, 9),X_2d[i]对应第i个样本的2D特征,y_arr[i]为该样本的对应标签。

逐行转换(适合需要自定义单行处理逻辑的场景)

如果需要对每一行特征做特殊调整后再转2D,可以用遍历方式实现:

X_2d = []
for _, row in X_df.iterrows():
    # 可在此处添加单行特征的自定义处理逻辑
    row_2d = row.to_numpy().reshape(m, n)
    X_2d.append(row_2d)
X_2d = np.array(X_2d)

结果校验

可以打印数组形状确认转换是否符合预期:

print(X_2d.shape) # 预期输出:(3259, 4, 9)
print(y_arr.shape) # 预期输出:(3259, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:27:03