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

如何拆分DataFrame中的列表行并新增行?

拆分DataFrame中的列表类型字符串行并展开成多行

实现步骤

  1. 解析字符串为Python对象:使用ast.literal_eval将列中的字符串格式数据转换为真实的列表或字典对象,规避直接用eval带来的安全风险。
  2. 统一格式为列表:将单个字典对象包装成列表,确保所有数据格式一致,方便后续拆分操作。
  3. 拆分列表为多行:借助Pandas的explode方法,把列表中的每个元素拆分为单独的行。

完整代码

import pandas as pd
import ast

# 原始DataFrame定义
data = [
    "[{'name': 'xxx', 'admin-status': 'up'}, {'name': 'zzz', 'admin-status': 'down'}]",
    "{'name': 'yyy', 'admin-status': 'up'}"
]
df = pd.DataFrame(data, columns=['data'])

# 解析字符串为Python对象
df['data'] = df['data'].apply(ast.literal_eval)

# 统一格式:单个字典转为列表
df['data'] = df['data'].apply(lambda x: x if isinstance(x, list) else [x])

# 拆分列表为多行
result_df = df.explode('data').reset_index(drop=True)

# 输出结果
print(result_df)

运行结果

data
0  {'name': 'xxx', 'admin-status': 'up'}
1  {'name': 'zzz', 'admin-status': 'down'}
2  {'name': 'yyy', 'admin-status': 'up'}

如果需要将字典拆分为独立列,可追加以下代码:

result_df = result_df['data'].apply(pd.Series)

此时输出会变为:

name admin-status
0  xxx           up
1  zzz         down
2  yyy           up

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:18:10