Python 删除最小值、最大值并计算平均值

Python 删除最小值、最大值并计算平均值,python,pandas,Python,Pandas,我有一列数字,我只需要删除一个最小值和一个最大值,然后计算剩余数字的平均值。 问题在于,最小/最大值可能位于列中的任何位置,某些行可能为空(null)或为零,或者列可能只有3个值。 所有数字都将介于0和100之间。 例如: Value Property 80 H 30.5 D 40 A 30.5 A 72 H 56 D 64.2 H 如果存在多个最小值或最大值,则只能删除一个

我有一列数字,我只需要删除一个最小值和一个最大值,然后计算剩余数字的平均值。 问题在于,最小/最大值可能位于列中的任何位置,某些行可能为空(null)或为零,或者列可能只有3个值。 所有数字都将介于0和100之间。 例如:

Value    Property
80          H
30.5        D
40          A
30.5        A
72          H
56          D
64.2        H
如果存在多个最小值或最大值,则只能删除一个

为了计算列的最小值和最大值,我做了如下操作:

maximum = df['Value'].max()
minimum = df['Value'].min()
在计算这个平均值的条件中,我还包括了它不为空和不等于零的条件。 但是,我不知道如何仅删除一个最大值和一个最小值,并添加超过3行/值的信息


我希望您能在这方面提供一些帮助/提示。

让我们做
idxmin
idxmax

out = df.drop([df.Value.idxmax(),df.Value.idxmin()])
Out[27]: 
   Value Property
2   40.0        A
3   30.5        A
4   72.0        H
5   56.0        D
6   64.2        H

如果目标是在没有一个最小值和一个最大值的情况下计算平均值,那么您可以这样做

(df['Value'].sum() - df['Value'].min() - df['Value'].max())/(len(df)-2)
为您的数据输出
52.54
。请注意,这将忽略NAN等。这不会修改您的df,如果我正确阅读问题,它无论如何都不是目标