如果任何特定列包含特定值,则删除 pandas 数据框中的行
Remove rows in pandas dataframe if any of specific columns contains a specific value
我有以下 df:
Data Frame
如果包含单词“test”的任何列小于 95,我无法弄清楚如何删除一行。例如,我必须删除整个索引行 1,因为该列“heat.test”为 80(第 0 行和第 3 行相同)。换句话说,如果只有一列满足这个条件,则必须删除整行。
谢谢!
你的问题不清楚。您的意思是如果 pump.test < 95
或 feed.test < 95
需要删除一行吗?
在这种情况下,不要 delete 或 remove 反其道而行之,然后 positive选择。 Select feed.test
和 pump.test
是 equal or greater 然后 95
.
的所有行
df.loc[df['feed.test'].ge(95) & df['pump.test'].ge(95)]
我想这就是你要问的:
df[~(df.le(95) & df.columns.str.contains("test"))].dropna()
示例 (df
):
pump.test Speed feed.test water
0 100 1000 70 0.2
1 100 2000 100 0.3
2 100 3000 100 0.4
3 95 4000 100 0.5
以上操作的输出:
pump.test Speed feed.test water
1 100 2000 100 0.3
2 100 3000 100 0.4
我有以下 df:
Data Frame
如果包含单词“test”的任何列小于 95,我无法弄清楚如何删除一行。例如,我必须删除整个索引行 1,因为该列“heat.test”为 80(第 0 行和第 3 行相同)。换句话说,如果只有一列满足这个条件,则必须删除整行。
谢谢!
你的问题不清楚。您的意思是如果 pump.test < 95
或 feed.test < 95
需要删除一行吗?
在这种情况下,不要 delete 或 remove 反其道而行之,然后 positive选择。 Select feed.test
和 pump.test
是 equal or greater 然后 95
.
df.loc[df['feed.test'].ge(95) & df['pump.test'].ge(95)]
我想这就是你要问的:
df[~(df.le(95) & df.columns.str.contains("test"))].dropna()
示例 (df
):
pump.test Speed feed.test water
0 100 1000 70 0.2
1 100 2000 100 0.3
2 100 3000 100 0.4
3 95 4000 100 0.5
以上操作的输出:
pump.test Speed feed.test water
1 100 2000 100 0.3
2 100 3000 100 0.4