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

如何将Pandas DataFrame列表列设为索引并展开为单独行?

解决方法:展开列表列并设置为索引

这事儿用pandas的explode()方法就能轻松搞定,它专门用来处理DataFrame中包含列表的列,把列表里的每个元素拆成单独一行。下面是完整的实现步骤:

步骤1:创建原始DataFrame

如果还没构建你的DataFrame,先运行这段代码:

import pandas as pd

# 你的原始数据
df = pd.DataFrame({
    'Number': [[12, 3], [2222, 4, 5], [3]],
    'Text': ['Apple', 'Banana', 'Guava']
})

步骤2:展开列表列

使用explode()方法将Number列中的列表元素拆分为单独行:

# 展开Number列的列表
df_exploded = df.explode('Number')

这一步执行后,DataFrame会变成这样:

Number    Text
0     12   Apple
0      3   Apple
1   2222  Banana
1      4  Banana
1      5  Banana
2      3   Guava

步骤3:设置Number为索引

最后把Number列设置为DataFrame的索引,如果不需要保留原始行索引,可以顺便丢弃:

# 设置Number为索引,同时移除原始行索引
final_df = df_exploded.set_index('Number').reset_index(drop=False)

或者如果你想要更简洁的结果(直接用Number做索引):

final_df = df_exploded.set_index('Number')

最终得到的结果完全符合你的需求:

Text
Number       
12      Apple
3       Apple
2222    Banana
4       Banana
5       Banana
3       Guava

额外调整(可选)

如果希望列顺序是Number在前、Text在后(和你给出的结果行内容对应,推测你写的表头可能是笔误),可以调整列顺序后再设置索引:

final_df = df_exploded[['Number', 'Text']].set_index('Number')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:32:52