【问题标题】:Range of values in PandasPandas 中的值范围
【发布时间】:2021-08-27 10:24:31
【问题描述】:

我需要显示我的数据集的一些参数,最后一个是范围,但我找不到任何有用的信息如何编码。如果我理解正确的话是

range = max - min

这是我在 jupiter notebook 中的 pandas 函数:

data.groupby("DPI").agg({"SUM_ALL" :["count",pd.Series.mode,"mean","median","min","max"]})

my outcome

如何用range 值再添加一列?

【问题讨论】:

  • 您可以轻松使用numpy.ptp()。见下文。

标签: python pandas dataframe jupyter-notebook dataset


【解决方案1】:

您可以直接使用numpy.ptp() 函数以获得更好的清晰度和效率:

numpy.ptp() 正在做你想做的事:

沿轴的值范围(最大值 - 最小值)。

函数名称来自“peak to peak”的首字母缩写词。

因此,插入您的代码,我们可以使用:

import numpy as np

data.groupby("DPI").agg({"SUM_ALL" :["count",pd.Series.mode,"mean","median","min","max", np.ptp]})

【讨论】:

    【解决方案2】:

    您可以尝试定义自定义范围函数,例如:

    def calc_range(x):
        return np.max(x) - np.min(x)
    

    然后在 agg 中将其作为函数传递:

    data.groupby("DPI").agg({"SUM_ALL" :["count",pd.Series.mode,"mean","median","min","max", calc_range]})
    

    【讨论】:

      猜你喜欢
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2015-10-22
      • 2017-09-26
      • 2016-04-09
      相关资源
      最近更新 更多