首页 > 解决方案 > 根据列中的多个条件删除行(使用 Python)

问题描述

我有一个数据集 df,如果列包含某个值,我希望从中删除行

  value   pod

  1       hi
  2       ok
  3       no
  4       sure

期望的输出:

  value   pod

  2       ok
  4       sure

如果 pod 列包含单词“hi”或单词“no”,我希望删除该行

这就是我正在做的

df1 = df.drop(df.index[df['pod'] == 'hi', 'no'], inplace = True)

我不断收到此错误:

试图在 DataFrame 中的切片副本上设置一个值

我还在研究这个,任何建议表示赞赏

标签: pythonpandasnumpy

解决方案


我相信你应该使用isin

df1 = df[~df['pod'].isin(['hi','no']) ]

print(df1)

输出:

   value   pod
1      2    ok
3      4  sure

另一方面,请看以下内容:

df.drop(df.index[df['pod'] == 'hi', 'no'], inplace = True)

如果要工作,则inplace=True强制drop命令就地工作,然后返回None。所以

df1 = df.drop(df.index[df['pod'] == 'hi', 'no'], inplace = True)

这意味着那df1不是None数据框。


推荐阅读