根据索引值屏蔽数据

这将是我们的示例数据框:

         color   size
name                 
rose       red    big
violet    blue  small
tulip      red  small
harebell  blue  small

我们可以根据索引值创建一个掩码,就像在列值上一样。

rose_mask = df.index == 'rose'
df[rose_mask]
     color size
name           
rose   red  big

但这样做几乎是一样的

df.loc['rose']
color    red
size     big
Name: rose, dtype: object

重要的区别是,当 .loc 只在匹配的索引中遇到一行时,它将返回一个 pd.Series,如果它遇到更多匹配的行,它将返回一个 pd.DataFrame。这使得该方法相当不稳定。

可以通过向 .loc 提供单个条目的列表来控制此行为。这将强制它返回数据框。

df.loc[['rose']]
         color   size
name                 
rose       red    big