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

如何在Pandas DataFrame中为每个Name索引层级保留前三行

处理多级索引DataFrame:保留每个主索引下的前三行

要实现每个Name层级索引下仅保留前三行,直接用Pandas的groupby结合head()方法就能搞定,操作简单高效:

核心代码逻辑

按第一级索引(Name)分组,对每组取前3行:

df_truncated = df.groupby(level=0).head(3)

完整示例

import pandas as pd

# 创建包含多个Name的示例DataFrame
df = pd.DataFrame()
df["Name"] = ["Name1", "Name1", "Name1", "Name1", "Name2", "Name2", "Name2", "Name2", "Name2"]
df["SubName"] = ["Sub1", "Sub2", "Sub3", "Sub4", "SubA", "SubB", "SubC", "SubD", "SubE"]
df["Value"] = [1,2,3,4,5,6,7,8,9]
df.set_index(["Name", "SubName"], inplace=True)

# 执行截断处理
df_truncated = df.groupby(level=0).head(3)

print("处理后的DataFrame:")
print(df_truncated)

说明

  • groupby(level=0) 指定按第一级索引(即Name)分组
  • head(3) 保留每组的前3行,完全遵循原数据的行顺序
  • 无论单个Name下有多少行,都会自动截断到仅留前三行,完美适配多Name的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:25:38