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

如何基于索引列表合并Pandas DataFrame行(保留更长列表行)

Pandas基于索引列表按规则合并行的解决方案

首先构造你给出的原始DataFrame:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [[1,2,3], [4,5,6], [7,8], [2,3]]
}, index=[1,2,3,4])

接下来按照你的规则处理:遍历指定的索引组,每组内保留B列列表长度更长的行,删除另一个。具体代码如下:

# 指定的索引组列表
index_groups = [[1,4]]

for group in index_groups:
    # 获取组内每行B列的长度
    len_dict = {idx: len(df.loc[idx, 'B']) for idx in group}
    # 找出长度最大的索引(若长度相同可按需调整,这里取第一个)
    keep_idx = max(len_dict, key=len_dict.get)
    # 确定要删除的索引
    drop_idx = [idx for idx in group if idx != keep_idx]
    # 删除行
    df = df.drop(drop_idx)

print(df)

运行后输出结果:

A          B
1  1  [1, 2, 3]
2  2  [4, 5, 6]
3  3     [7, 8]

代码说明

  • 遍历每个索引组,用字典存储组内每个索引对应的B列列表长度
  • 通过max函数筛选出长度最长的索引作为保留项
  • 过滤出需要删除的索引,调用drop方法移除目标行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:05:24