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

如何在Pandas中将行内数组值拆分分配至多列?

将Pandas DataFrame的数组列拆分为多列

问题背景

现有如下结构的Pandas DataFrame,其中FEATURE列存储的是形状为(300,)的NumPy数组:

TEXTFEATURE
test[0.2, 0.3, 0.4, ..., n]
test[0.2, 0.3, 0.4, ..., n]
test2[0.2, 0.3, 0.4, ..., n]
test2[0.2, 0.3, 0.4, ..., n]

需要将其转换为以下格式,把FEATURE数组的每个元素拆分为单独的列:

TEXTFEATURE 1FEATURE 2FEATURE 3...FEATURE 300
test0.20.30.4...n
test0.20.30.4...n
test20.20.30.4...n
test20.20.30.4...n

解决方案

方法1:直接将数组列转为DataFrame后拼接

这种方法利用pd.DataFrame将数组列直接展开为多列,再和原TEXT列合并:

import pandas as pd
import numpy as np

# 模拟原始DataFrame(实际使用时替换为你的数据)
df = pd.DataFrame({
    'TEXT': ['test', 'test', 'test2', 'test2'],
    'FEATURE': [np.random.rand(300) for _ in range(4)]
})

# 把FEATURE列的数组展开成新DataFrame
feature_cols = pd.DataFrame(df['FEATURE'].tolist(), index=df.index)
# 给新列命名为FEATURE 1到FEATURE 300
feature_cols.columns = [f'FEATURE {i+1}' for i in feature_cols.columns]

# 合并原TEXT列和拆分后的特征列
final_df = pd.concat([df['TEXT'], feature_cols], axis=1)

方法2:用apply(pd.Series)快速展开

通过对FEATURE列应用pd.Series,可以一键将数组拆分为多列,再拼接TEXT列:

# 展开数组列并命名
feature_cols = df['FEATURE'].apply(pd.Series).rename(columns=lambda x: f'FEATURE {x+1}')
# 合并得到最终结果
final_df = pd.concat([df['TEXT'], feature_cols], axis=1)

注意事项

  • 两种方法都是基于Pandas的向量化操作,处理300维数组效率很高,不需要逐行循环。
  • 因为题目中明确FEATURE列的数组是固定300长度,所以不会出现列数不一致或NaN填充的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 04:24:47