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

Python中实现numpy一维数组转多维及DataFrame列批量拆分

解决方案

问题回顾

原DataFrame结构:

df
[0,1,2]
[3,4,5]

期望转换后的结构:

df1df2df3
[0][1][2]
[3][4][5]

你用np.split(df.iloc[0],3)能处理单行,但批量处理失败,以下是两种可行的批量解决方案:


方法一:先拆分列表为普通列,再转为单元素列表

先将原列中的列表拆分为多列(每个单元格为单个值),再把每个值包裹成单元素列表:

import pandas as pd

# 假设原DataFrame定义如下
df = pd.DataFrame({'df': [[0,1,2], [3,4,5]]})

# 第一步:拆分列表为普通列
temp_df = pd.DataFrame(df['df'].tolist(), columns=['df1', 'df2', 'df3'])
# 第二步:将每个单元格的值转为单元素列表
result_df = temp_df.applymap(lambda x: [x])

方法二:通过apply直接拆分并生成列表列

利用apply遍历每行的列表,直接生成包含单元素列表的Series,再组合为DataFrame:

import pandas as pd

df = pd.DataFrame({'df': [[0,1,2], [3,4,5]]})

result_df = df['df'].apply(
    lambda lst: pd.Series([[lst[0]], [lst[1]], [lst[2]]])
).rename(columns={0: 'df1', 1: 'df2', 2: 'df3'})

两种方法都能批量处理所有行,最终得到你需要的DataFrame结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:32:58