[英]Find values that exceed the minimum or maximum
我正在嘗試。 我的 dataframe 看起來與此類似:
Name DateTime Na Na Err Mg Mg Err Al Al Err Si Si Err
STD1 2/11/2020 0.3 0.11 1.6 0.08 0.6 0.12 21.5 0.14
STD2 2/11/2020 0.2 0.10 1.6 0.08 0.2 0.12 21.6 0.14
STD3 2/11/2020 0.2 0.10 1.6 0.08 0.5 0.12 21.7 0.14
STD4 2/11/2020 0.1 0.10 1.3 0.08 0.5 0.12 21.4 0.14
這是我所擁有的:
elements=['Na','Mg', 'Al', 'Si',...]
quant=df[elements].quantile([lower, upper]) #obtain upper/lower limits
outsideBounds=(quant.loc[lower_bound, elements] < df[elements].to_numpy()) \
& (df[elements].to_numpy()<quant.loc[lower_bound, elements])
但是,這給了我一個“ValueError:長度必須匹配才能比較”。 任何幫助,將不勝感激
這是一個解決方案(我分別為下限和上限選擇了 0.3 和 0.7,但當然可以更改):
lower = 0.3
upper = 0.7
elements=['Na','Mg', 'Al', 'Si']
df[elements]
bounds = df[elements].quantile([lower, upper]) #obtain upper/lower limits
out_of_bounds = df[elements].lt(bounds.loc[lower, :]) | df[elements].gt(bounds.loc[upper, :])
df[elements][out_of_bounds]
結果bounds
是:
Na Mg Al Si
0.3 0.19 1.57 0.47 21.49
0.7 0.21 1.60 0.51 21.61
df[elements][out_of_bounds]
的結果是:
Na Mg Al Si
0 0.3 NaN 0.6 NaN
1 NaN NaN 0.2 NaN
2 NaN NaN NaN 21.7
3 0.1 1.3 NaN 21.4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.