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

如何将DataFrame中的列表拆分到多个DataFrame中?

解决方案

要实现把每个单元格的字符串列表拆分成两个DataFrame的需求,你可以利用applymap对DataFrame的每个单元格进行元素提取操作,具体步骤如下:

首先明确核心需求:每个单元格的列表要么长度为1(需要在两个结果DataFrame中保留相同值),要么长度为2(分别提取第1个和第2个元素到两个DataFrame)。

代码实现

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame({ 'A': {'a': ['NaN'],'b': ['1.11', '0.00']}, 'B': {'a': ['3.33', '0.22'],'b': ['NaN']}, })

# 生成df1:提取每个列表的第一个元素(保持列表格式)
df1 = df.applymap(lambda x: [x[0]])

# 生成df2:提取列表的第二个元素;如果列表只有1个元素,就复用第一个元素
df2 = df.applymap(lambda x: [x[1]] if len(x) > 1 else [x[0]])

结果验证

运行后得到的df1和df2完全符合你的期望:

  • df1的每个单元格对应原列表的第一个元素
  • df2的每个单元格对应原列表的第二个元素(长度为1的列表则保留原元素)

为什么用applymap?

apply是针对行或列(Series)操作的,而我们需要对每个独立的单元格处理,applymap正好能遍历DataFrame的所有单元格,对每个单元格执行自定义的lambda函数,完美匹配你的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:40:14