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

如何将元素为长度50的np数组的(35,1)DataFrame转为(35,50)?

解决方法

方法1:用apply(pd.Series)展开数组

直接对包含数组的列应用pd.Series,会自动把每个长度为50的数组拆分成50列:

import pandas as pd
import numpy as np

# 假设原始DataFrame名为df
new_df = df.iloc[:, 0].apply(pd.Series)

执行后new_df的形状就是(35,50),每一列对应原数组的一个元素。

方法2:通过np.vstack堆叠数组后转DataFrame

先提取列里的所有数组组成列表,再用np.vstack转换成二维数组,最后转为DataFrame:

# 提取列中的所有数组
arrays = df.iloc[:, 0].to_list()
# 堆叠成(35,50)的二维数组
stacked_arr = np.vstack(arrays)
# 转成目标DataFrame
new_df = pd.DataFrame(stacked_arr)

为什么reshape不适用?

原DataFrame是(35,1)的结构,每个单元格里是独立的长度50的数组,并非整个DataFrame存储着连续的35×50个数值。reshape是对DataFrame的整体维度做调整,但它无法识别嵌套在单元格里的数组结构,所以直接用reshape操作不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:05:19