Skip to main content
 首页 » 编程设计

python之Pandas 多索引数据框之选择并删除

2025年05月04日22emanlee

我需要一些帮助来清理具有多索引的 Dataframe。

看起来像这样

                   cost 
location season  
Thorp park  autumn £12 
            srping £13 
            summer £22 
Sea life centre  summer  £34 
                 spring  £43 
Alton towers     and so on............. 

位置和季节是索引列。我想浏览数据并删除所有三个季节都没有“季节”值的位置。所以应该删除“海洋生物中心”。

谁能帮我解决这个问题?

还有另一个问题,我的数据框是通过 groupby 命令创建的,并且没有“成本”列的列名。这是正常的吗?列中有值,只是没有标题。

请您参考如下方法:

选项 1
groupby + count。您可以使用结果为您的数据框编制索引。

df 
 
     col 
a 1    0 
  2    1 
b 1    3 
  2    4 
  3    5 
c 2    7 
  3    8 
 
v = df.groupby(level=0).transform('count').values 
df = df[v == 3] 
 
df 
 
     col 
b 1    3 
  2    4 
  3    5 

选项 2
groupby + 过滤器。这是 Paul H's idea , 如果他想发布,将删除。

df.groupby(level=0).filter(lambda g: g.count() == 3) 
 
     col 
b 1    3 
  2    4 
  3    5