我想过滤掉 pandas 中具有“许多”零值的列。 过滤由“全零值”组成的列并不难,但我想要做的是过滤具有“多个零值”的列,例如超过 75% 的列值。
数据集(A 有 4 个值中的 3 个零,占列值的 75%。)
A B C
0 0 0
0 0 1
0 1 2
1 2 3
结果
B C
0 0
0 1
1 2
2 3
有什么建议吗?
最佳答案
您可以使用 mean
的boolean mask
,其中True
值转换为 1
,然后反转条件 - >=
至<
用于过滤具有较少 mean
的所有列如0.75
:
print ((df == 0).mean())
a 0.75
b 0.50
c 0.25
dtype: float64
print ((df == 0).mean() < 0.75)
a False
b True
c True
dtype: bool
df = df.loc[:, (df == 0).mean() < 0.75]
print (df)
b c
0 0 1
1 0 1
2 1 0
3 1 1
关于python - 按 Pandas 中值的百分位数过滤列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45388811/