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

如何在Pandas DataFrame对应Label分组后追加新数据并维持分组顺序

如何将新数据追加到Pandas DataFrame对应Label分组的末尾?

我来帮你搞定这个需求!默认的append方法会把新数据放到整个DataFrame的最后,但你想要把新数据追加到对应Label分组的末尾、保持其他分组顺序不变,其实可以通过拆分原DataFrame再合并的方式实现,具体代码和步骤如下:

实现代码

import pandas as pd

# 初始化原DataFrame
df1 = pd.DataFrame(
    {"a":[1, 2, 3, 4, 1, 2,5,3], 
     "b":[5, 6, 7, 8, 5, 6,6,2], 
     "label":['A','A','A','B','B','B','C','C']}
)
# 待追加的新数据
new_data = pd.DataFrame({"a":[3], "b":[4], "label":['A']})

# 获取新数据对应的目标Label
target_label = new_data['label'].iloc[0]

# 找到原DataFrame中该Label分组的最后一行索引
last_target_index = df1[df1['label'] == target_label].index[-1]

# 拆分原数据并合并新数据到对应分组末尾
df1 = pd.concat([
    df1.iloc[:last_target_index + 1],  # 包含目标Label的所有行
    new_data,                          # 待追加的新数据
    df1.iloc[last_target_index + 1:]   # 剩余的其他分组数据
], ignore_index=True)

# 查看结果
print(df1)

代码说明

  1. 定位目标分组:先获取新数据对应的Label值,再筛选出原DataFrame中该Label的所有行,取最后一行的索引——这就是我们要插入新数据的位置。
  2. 拆分与合并:把原DataFrame拆成三部分(目标Label及之前的行、新数据、目标Label之后的行),用pd.concat按顺序合并这三部分,最后重置索引即可得到你期望的结果。

如果后续需要追加多个不同Label的新数据,你可以把这个逻辑封装成函数,循环处理每个Label的新数据即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:12:54