Pandas 是否可以使用.apply(lambda)函数根据条件返回值,同时跳过不满足条件的值?

Pandas 是否可以使用.apply(lambda)函数根据条件返回值,同时跳过不满足条件的值?,pandas,Pandas,数据: 我的数据集是烹饪类型,我想创建一个条件,将烹饪类型重命名为“其他”,如果关联的违规计数小于1000,我希望将它们指定为“其他”,以便我的饼图更清晰 我尝试使用下面的方法,如果条件为False,它不会跳过烹饪类型,正如我所预料的那样 Manhattan_groupby['cuisine'] = Manhattan_groupby['violations'].apply(lambda x: 'other' if (x <= 1000) else None) Manhattan_gro

数据:

我的数据集是烹饪类型,我想创建一个条件,将烹饪类型重命名为“其他”,如果关联的违规计数小于1000,我希望将它们指定为“其他”,以便我的饼图更清晰

我尝试使用下面的方法,如果条件为False,它不会跳过烹饪类型,正如我所预料的那样

Manhattan_groupby['cuisine'] = Manhattan_groupby['violations'].apply(lambda x: 'other' if (x <= 1000) else None)
Manhattan_groupby['cuisine']=曼哈顿_groupby['influences']适用(lambda x:'other'如果(x
Manhattan_groupby['cuisine']=np.其中(Manhattan_groupby['influences']<1000,'other',Manhattan_groupby['cuision']))
您可以使用np.where来完成这样的if语句。

Manhattan\u groupby['cuisine']=np.where(Manhattan\u groupby['influences']<1000,'other',Manhattan\u groupby['cuisine'])

您可以使用np.where来完成像这样的if语句。

使用
loc
和布尔索引:

Manhattan_groupby.loc[Manhattan_groupby['violations'] < 1000, 'cuisine'] = 'other'
Manhattan_groupby.loc[曼哈顿_groupby['influences']<1000,'courine']='other'

使用
loc
和布尔索引:

Manhattan_groupby.loc[Manhattan_groupby['violations'] < 1000, 'cuisine'] = 'other'
Manhattan_groupby.loc[曼哈顿_groupby['influences']<1000,'courine']='other'

抱歉-groupby实际上是变量名的一部分,因此我们没有执行groupby函数。我不希望排除超过1000行的行,我希望保留它们。如果冲突值小于1000,我想将值更改为“其他”,因为我认为它们在研究中与统计无关。我同意e、 但是,如果您要将它们标记为“其他”,然后可能会在以后过滤掉它们,那么为什么要进行中间步骤呢?只需过滤
df[df.invalices.lt(1000)]
在进行任何分析之前。抱歉-groupby实际上是变量名的一部分,因此我们不执行groupby函数。我不希望排除超过1000行的行,我希望保持不变。如果冲突值小于1000,我想将值更改为“其他”,因为我认为它们在统计上不相关我同意,但是如果你打算将它们标记为“其他”,然后很可能在以后过滤掉它们,为什么要经过中间步骤呢?在进行任何分析之前只过滤
df[df.influences.lt(1000)]
。这很有帮助,以前没有见过df[df.influences.lt(1000)]。谢谢!这很有帮助,也没有见过df.influences.lt(1000)][df.invalices.lt(1000)]之前的用法。谢谢!
Manhattan_groupby.loc[Manhattan_groupby['violations'] < 1000, 'cuisine'] = 'other'