如何删除前和后n%的数据

Belyakova Anastasia

我正在创建一个函数来计算均值。为此,我删除了数据的最高和最低百分比,然后照常计算平均值。到目前为止,我有:

def trimmed_mean(data, percent):
    from numpy import percentile

    if percent < 50:
        data_trimmed = [i for i in data
                        if i > percentile(data, percent)
                        and i < percentile(data, 100-percent)]
    else:
        data_trimmed = [i for i in data
                        if i < percentile(data, percent)
                        and i > percentile(data, 100-percent)]

    return sum(data_trimmed) / float(len(data_trimmed))

但是我确实得到了错误的结果。因此,[37, 33, 33, 32, 29, 28, 28, 23, 22, 22, 22, 21, 21, 21, 20, 20, 19, 19, 18, 18, 18, 18, 16, 15, 14, 14, 14, 12, 12, 9, 6]按10%的平均水平应该是20.16我得到的20.0

还有其他方法可以删除python中的顶部和底部数据吗?还是我做错了什么?

和我

您可以看一下这个相关的问题:Python中带有百分比限制的均值修整了吗?

简而言之,scipy版本> 0.14.0,以下工作即可完成

from scipy import stats
m = stats.trim_mean(X, percentage)

如果您不想依赖于外部库,那么您当然可以恢复为Chip Grandits答案中所示的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

mySQL:删除数据的前n%和后n%后求平均值

如何删除SAS数据文件的前10行和后10行?

如何获取bash脚本以从变量中删除前n行和后n行?

如何减少前n列和后n列?

如何显示数据框的前+后N行

如何删除R中数据集中的前N行?

熊猫新数据框显示每组的前N个值和后N个值

sed如何删除文件中的前17行和后8行

使用Eval和Substring删除文本框中数据的前3个和后3个字符

使用Regex Python删除数据框中字符串的前2个单词和后2个单词

如何从熊猫数据框中排除前 150 行和后 150 行?

如何从文件中读取前n行和后n行?

如何使用Unix Shell仅显示前n列和后n列?

半小时后如何删除数据?

插入数据后如何更新和删除

删除后如何恢复MailChimp数据?

rm后如何安全删除数据

从数据集中删除行后,如何创建表格公式来更新调整后的得分和排名?

删除前10个值和后10个值

如何有条件地删除熊猫数据框的前 N 行

如何在条件下从R中的数据帧的前n行删除行

如何使用bash从文本文件中删除前两行和后四行?

如何在Python中从文件读取和删除前n行-优雅的解决方案

选择复选框并单击删除按钮后,如何自动将列中的数据更改为“ N”而不是删除

选择数据后如何从列表中删除数据

如何有条件地从 2 个数据帧中删除数据帧的前 N 行

Pandas groupby 丢弃前 5% 和后 5% 的数据

用熊猫选择前 n 列和后 n 列

mysql选择前n行和后n行