【问题标题】:How to delete the highest value in a row如何删除一行中的最大值
【发布时间】:2021-04-02 22:05:20
【问题描述】:

我有一个数据框,每行有 5 个值。我需要计算 4 个最低值的平均值。所以,我想删除每一行中的最大值,然后计算平均值。对我来说,最高值在哪一列并不重要。 示例:

df = {"A":[78, 45, 50, 85, 63],

      "B":[52, 67, 81, 65, 83],

      "C":[67, 55, 81, 62, 58]}

我想获得一个包含59 (the mean of 78, 45, 50 and 63) for A66.25 for B60,5 for C. 的专栏

到目前为止,感谢您的建议!尝试之后,我意识到我需要添加一些东西。

我也有负值。我想排除与零的最高偏差,因此最高绝对值。但我需要真实值的平均值,包括正值和负值。 示例:

df = {"A":[-78, 45, -50, 85, -63],

      "B":[-52, 67, -81, 65, -83],

      "C":[67, -55, 81, -62, 58]}

我想获得一个包含-36.5 (the mean of -78, 45, 50 and -63) for A-.25 for B (not using -83)2 for C (not using 81). 的专栏

有什么建议吗?

【问题讨论】:

    标签: python pandas dataframe max


    【解决方案1】:

    您可以将sum 减去max 的值,然后除以除最大值之外的每列值的数量:

    (df.sum() - df.max()) / (len(df) - 1)
    

    结果:

    A    59.00
    B    66.25
    C    60.50
    dtype: float64
    

    【讨论】:

      【解决方案2】:

      “我需要计算 4 个最低值的平均值。” - 如果您的意思是在每一行中从 5 个中选择 4 个最低元素,然后计算平均值;最简单的方法是对所有行进行排序,然后取前 4 个元素 - 或根据需要删除 las 列。

      【讨论】:

        猜你喜欢
        • 2011-04-06
        • 2020-06-28
        • 2021-08-30
        • 1970-01-01
        • 2022-10-23
        • 1970-01-01
        • 1970-01-01
        • 2019-11-11
        • 1970-01-01
        相关资源
        最近更新 更多