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

如何拆分含[]与{}的Pandas DataFrame列?Mongo导出数据处理

解决方案

首先明确核心逻辑:先把Mongo导出的嵌套数据(如果是字符串格式)转成Python原生对象,再根据元素类型(列表/字典)分别提取值拆分到新列。以下是具体步骤:

  1. 导入依赖库
import pandas as pd
import ast
  1. 转换字符串格式的嵌套数据(按需使用)
    如果你的目标列(比如叫mixed_col)存的是类似"[123]"或"{'name':'test'}"的字符串,先转成原生列表/字典:
df['mixed_col'] = df['mixed_col'].apply(ast.literal_eval)
  1. 定义拆分函数
    根据你的预期效果调整逻辑,示例如下:
  • 遇到列表时,取第一个元素作为第一列,第二列留空
  • 遇到字典时,提取指定键对应的值到两列
def split_mixed_item(item):
    if isinstance(item, list):
        # 列表处理:取第一个元素,空列表则返回None
        return pd.Series([item[0] if item else None, None])
    elif isinstance(item, dict):
        # 字典处理:替换成你实际需要提取的键名
        return pd.Series([item.get('key_a'), item.get('key_b')])
    else:
        # 处理空值或其他未知类型
        return pd.Series([None, None])
  1. 应用函数生成新列
# 替换成你需要的新列名
df[['col1', 'col2']] = df['mixed_col'].apply(split_mixed_item)

自定义调整说明

  • 若列表是多元素,想拼接成字符串:把列表处理逻辑改成', '.join(map(str, item)) if item else None
  • 若字典键名不同,直接替换item.get()里的键即可
  • 遇到嵌套结构(比如列表里套字典),可在函数里追加类型判断(比如isinstance(item[0], dict))进一步处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:22:38