删除最小值、最大值和计算平均值

时间:2021-04-06 01:46:02

标签: python pandas

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

Value    Property
80          H
30.5        D
40          A
30.5        A
72          H
56          D
64.2        H

如果有超过 1 个 min 或 max,则只能删除 1 个。

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

maximum = df['Value'].max()
minimum = df['Value'].min()

在计算这个平均值的条件中,我还包括了它不为空和不等于零的条件。 但是,我不知道如何只删除一个最大值和一个最小值,并添加大于 3 行/值的信息。

我希望你能提供一些帮助/提示。

2 个答案:

答案 0 :(得分:1)

让我们做idxminidxmax

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

答案 1 :(得分:1)

如果目标是计算没有一个最小值和一个最大值的平均值,你可以这样做

(df['Value'].sum() - df['Value'].min() - df['Value'].max())/(len(df)-2)

为您的数据输出 52.54。请注意,这将忽略 NaN 等。这不会修改您的 df,如果我读对了问题,那无论如何都不是目标