[英]Getting a boolean value if data is below of a treshold in pandas dataframe
[英]How to simplify a pandas dataframe based on treshold value
這是我的 dataframe
A B C D
1 0 0.41 0.35 0.61
2 0 0.41 0.35 0
3 0 0.21 0 0
4 0.11 0.4 0.53 0
我只想顯示包含值大於 0.5 的列或行,就像這樣
C D
1 0.35 0.61
4 0.53 0
我應該怎么做
使用DataFrame.gt
測試更大的值,使用DataFrame.any
測試是否匹配至少一個值並在DataFrame.loc
中過濾:
m = df.gt(0.5)
df1 = df.loc[m.any(axis=1), m.any()]
print (df1)
C D
1 0.35 0.61
4 0.53 0.00
您可以使用雙boolean 索引。 使用gt
計算 boolean 掩碼。 然后檢查每個軸上是否有any
值是 True 並將其用於使用loc
的選擇
m = df.gt(0.5)
df.loc[m.any(1), m.any(0)]
output:
C D
1 0.35 0.61
4 0.53 0.00
m
:
A B C D
1 False False False True
2 False False False False
3 False False False False
4 False False True False
m.any(1)
:
1 True
2 False
3 False
4 True
dtype: bool
m.any(0)
:
A False
B False
C True
D True
dtype: bool
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.