簡體   English   中英

查找超過最小值或最大值的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM