Pandas 最好的方法是使用掩码就地对数据帧子集

Pandas 最好的方法是使用掩码就地对数据帧子集,pandas,subset,mask,masking,Pandas,Subset,Mask,Masking,我有一个要缩小的pandas数据集(删除x下的所有值) 掩码为df[my_column]>50 我通常只使用df=df[mask],但希望避免每次都复制,特别是因为它在函数中使用时容易出错(因为它只在函数范围内被更改) 对数据集进行子集的最佳方法是什么 我在想一些类似于 df.drop(df.loc[mask].index,inplace=True) 有没有更好的方法来做到这一点,或者在任何情况下这根本不起作用?我认为这是可行的。也许有更好的方法 df=df.drop(df[df.my_colu

我有一个要缩小的pandas数据集(删除x下的所有值)

掩码为
df[my_column]>50

我通常只使用
df=df[mask]
,但希望避免每次都复制,特别是因为它在函数中使用时容易出错(因为它只在函数范围内被更改)

对数据集进行子集的最佳方法是什么

我在想一些类似于
df.drop(df.loc[mask].index,inplace=True)


有没有更好的方法来做到这一点,或者在任何情况下这根本不起作用?

我认为这是可行的。也许有更好的方法


df=df.drop(df[df.my_column<50].index)
您缺少就地参数:


df.drop(df[df.my_column<50].index,inplace=True)

你的意思是
view=df.loc[df[my_column]>50]
?我总是对熊猫中的查看和复制感到困惑。本质上,我想给它一个条件,让它下降,并下降到位。df.loc[mask].index将为me提供要删除的索引,对吗?对不起,
df=df[mask]
?这将最终为删除的行恢复内存?嗯
掩码本身是一个布尔索引,更容易出错,在函数中使用时会生成一个“本地”副本,然后必须返回该副本。我想在适当的地方做一些修改,而不仅仅是为了记忆
df.drop(df.loc[mask].index,inplace=True)
似乎有效,但我认为可能会有更好的解决方案(因为我的解决方案可能会在多级索引等方面失败),它仍然是一个复制和替换,但我很好奇为什么要避免iloc drop有一个inplace标志