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

如何删除多索引DataFrame中仅含单一年份记录的Unit行?

嗨Jenny,这个需求其实很容易实现,我们只需要先找出那些拥有多个年份记录的Unit,再过滤掉剩下的就行啦,给你两种简单的方法:

方法一:分步筛选(直观易懂)

首先我们先统计每个Unit对应的年份条目数量,然后筛选出数量大于1的Unit,最后用这些Unit来过滤原DataFrame:

# 统计每个Unit的年份记录数
unit_year_counts = new_df.groupby(level='Unit').size()

# 提取出有多个年份的Unit
valid_units = unit_year_counts[unit_year_counts > 1].index

# 过滤得到目标DataFrame
filtered_df = new_df.loc[valid_units]

运行后filtered_df就是你想要的结果,会自动保留Unit1、2、6的所有行,去掉只有单一年份的Unit3、4、5。

方法二:链式写法(简洁高效)

如果你喜欢更紧凑的代码,可以用groupby的filter方法,直接对每个Unit组进行判断,保留长度大于1的组:

filtered_df = new_df.groupby(level='Unit').filter(lambda x: len(x) > 1)

这个方法一步到位,效果和上面完全一样,适合追求代码简洁的场景。

你可以根据自己的习惯选择其中一种,两种方法都能完美解决你的问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:24:12