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

Python Pandas中explode函数是否存在对应的逆操作?

当然有啦!这种操作正好是explode()的逆过程

这种把分散的行按指定列分组后,将另一列的值聚合为列表的需求,在Pandas里可以轻松实现,核心就是用groupby()配合聚合函数来完成。

先还原你的原始DataFrame:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 1, 2, 2],
    'B': [1, 2, 1, 2]
})

实现逆操作的核心代码

直接按列A分组,然后对B列聚合为列表,最后重置索引即可:

result_df = df.groupby('A')['B'].agg(list).reset_index()

运行后得到的结果完全符合你的预期:

A       B
0  1  [1, 2]
1  2  [1, 2]

一些实用补充

  • 如果需要按多列分组,只需要把所有分组列放进groupby()的参数列表里,比如df.groupby(['A', 'C'])['B'].agg(list).reset_index()
  • 要是担心列表里的元素顺序和原始数据不一致,可以用agg(pd.Series.tolist)替代agg(list),两者效果一致,但能明确保留原始数据的顺序
  • 另外还有groupby().apply(list)的写法,但agg(list)的性能更优,处理大数据集时差异会更明显

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:46:07