根据单元格值从Pandas DataFrame中删除行

use*_*850 1 python dataframe pandas

如何根据单元格值删除Pandas Dataframe中的行而不提供特定的列名?

例如:

我有这个DataFrame,我想删除一个单元格包含值'd'的所有行.

   A B C D
1  1 2 d 5
2  1 3 4 0
3  d 2 1 2
4  3 2 1 7
Run Code Online (Sandbox Code Playgroud)

所以我最终得到了DataFrame

  A B C D
2 1 3 4 0
4 3 2 1 7
Run Code Online (Sandbox Code Playgroud)

有办法实现这个吗?我的谷歌技能只找到了需要特定列名称的解决方案.

Max*_*axU 5

你可以这样做:

df = df[~df.select_dtypes(['object']).eq('d').any(1)]
Run Code Online (Sandbox Code Playgroud)

结果:

In [23]: df
Out[23]:
   A  B  C  D
2  1  3  4  0
4  3  2  1  7
Run Code Online (Sandbox Code Playgroud)