在pandas DataFrame中保持所有单元格高于给定值

时间:2019-05-31 20:22:18

标签: python pandas

我想舍弃所有包含低于给定值的单元格。因此,不仅是行或列,而且对于所有单元格。

下面尝试过的代码,其中每个单元格中的所有值均应至少为3。无效。

df[(df >= 3).any(axis=1)]

示例

import pandas as pd
my_dict = {'A':[1,5,6,2],'B':[9,9,1,2],'C':[1,1,3,5]}
df = pd.DataFrame(my_dict)
df
    A   B   C
0   1   9   1
1   5   9   1
2   6   1   3
3   2   2   5

我只想保留至少3个单元格。

2 个答案:

答案 0 :(得分:1)

如果您希望“每个单元格中的所有值都应至少为3”

df [df < 3] = 3
df

    A   B   C
0   3   9   3
1   5   9   3
2   6   3   3
3   3   3   5

如果要“仅保留至少3个单元格”

df = df [df >= 3]
df

    A   B   C
0   NaN 9.0 NaN
1   5.0 9.0 NaN
2   6.0 NaN 3.0
3   3.0 3.0 5.0

答案 1 :(得分:0)

您可以检查该值是否> = 3,然后删除所有NaN值的行。

df[df >= 3 ].dropna()

演示:

import pandas as pd
my_dict = {'A':[1,5,6,3],'B':[9,9,1,3],'C':[1,1,3,5]}
df = pd.DataFrame(my_dict)
df

    A   B   C
0   1   9   1
1   5   9   1
2   6   1   3
3   3   3   5

df = df[df >= 3 ].dropna().reset_index(drop=True)
df

    A   B   C
0   3.0 3.0 5.0