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

如何拆分DataFrame中的列表值,生成对应数量的独立DataFrame

拆分含列表元素的DataFrame为多份独立表的实现方案

你之前使用explode不符合预期的原因是:explode是行向展开操作,会把每个列表元素拆分为单独的行,将原表行数放大为原来的N倍(N为列表长度),和你需要的「按列表索引位置拆分出N个结构和原表完全一致的独立表」的需求不匹配。

首先给出可直接复现的测试数据构造代码:

import pandas as pd

# 构造和示例结构一致的测试DataFrame
df = pd.DataFrame({
    'col1': [[1, 11], [2, 22], [3, 33]],
    'col2': [[4, 44], [5, 55], [6, 66]],
    'col3': [[7, 77], [8, 88], [9, 99]]
})

固定2个用户的场景

直接按索引位置提取即可:

# 取所有列表第1位元素生成第一个DataFrame(索引从0开始计数)
df_user1 = df.apply(lambda col: col.str[0])
# 取所有列表第2位元素生成第二个DataFrame
df_user2 = df.apply(lambda col: col.str[1])

动态用户数量的通用场景

如果列表长度不固定,可批量生成所有用户的DataFrame:

# 获取每个列表的长度,即用户总数量
user_num = len(df.iloc[0, 0])
# 批量生成所有用户的DataFrame,存储在列表中按索引访问即可
user_df_list = [df.apply(lambda col: col.str[i]) for i in range(user_num)]

# 调用示例:user_df_list[0]对应第一个用户的表,user_df_list[1]对应第二个用户的表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:24:02