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

如何在Python中拆分Pandas DataFrame的嵌套结构列?

解决Pandas DataFrame列拆分问题

步骤1:导入依赖并构造示例数据

先确保已安装pandas,再导入工具并创建与你示例匹配的DataFrame:

import pandas as pd

# 构造你提供的示例数据
data = {
    'Name1': [[0.1,0.2,0.3], [0.4,0.5,0.6], [0.7,0.8,0.9]],
    'Name2': [[{'label': 'Neutral', 'score': 0.60}], 
              [{'label': 'Negative', 'score': 0.60}], 
              [{'label': 'Positive', 'score': 0.60}]]
}
df = pd.DataFrame(data)

步骤2:拆分Name1列的列表数据

将Name1列中的列表拆分为N1、N2、N3三列,同时保留原Name1列:

# 将列表转为DataFrame,自动拆分出多列
name1_split = pd.DataFrame(df['Name1'].tolist(), index=df.index)
# 给拆分后的列重命名
name1_split.columns = ['N1', 'N2', 'N3']
# 把拆分结果和原DataFrame合并
df = pd.concat([df, name1_split], axis=1)

步骤3:拆分Name2列的字典列表数据

Name2列的每个元素是包含单个字典的列表,先提取字典,再拆分为Label和Score列:

# 提取列表里的字典元素
name2_dicts = df['Name2'].str[0]
# 将字典转为DataFrame,自动拆分出label和score列
name2_split = pd.DataFrame(name2_dicts.tolist(), index=df.index)
# 重命名列以匹配你的期望结果
name2_split.columns = ['Label', 'Score']
# 合并到原DataFrame中
df = pd.concat([df, name2_split], axis=1)

步骤4:调整列顺序(可选)

如果需要和你给出的期望结果列顺序完全一致,可重新排列列:

df = df[['Name1', 'N1', 'N2', 'N3', 'Name2', 'Label', 'Score']]

大型数据集适配说明

以上方法均使用Pandas矢量化操作,完全避开循环,处理数十万条数据时效率很高,不会出现性能瓶颈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:50:29