【问题标题】:How to extract mean, max and min values of one column from a range data of the other column (continuous data) in python如何从python中另一列(连续数据)的范围数据中提取一列的平均值、最大值和最小值
【发布时间】:2019-07-09 11:13:55
【问题描述】:

我有一个包含两列 Distance(m)height(m) 的数据框。我想从 0.04439 米的距离间隔计算 maxminaverage 高度值。

距离是一个连续的序列,从0到0.81m,每个0.00222m,共有403个值长度

目的是从每个 0.0439m 距离(0 到 0.81m 之间的连续距离序列)的 18 个间隔中提取 18 个高度值(最大最小平均值)

然后,创建每个距离间隔的数据框(2 列)及其分别的最大最小值和高度平均值

这是一个例子:

Interval distance     Height_max(m)     Height_min(m)     Height_average(m)

1                       0.35            0.15           0.25  

2                       0.55            0.22           0.35  

3                       0.25            0.10           0.15

我的数据框中只有 2 列:

Distance(m) = [0, 0.0022, 0.0044, .... 0.81 ]
Height(m) = [ 0, 0.1, 0.5, 0.4, 0.9, .... 0.1]

有人有什么建议可以帮到我吗?

谢谢!

【问题讨论】:

  • 嗨。请花时间阅读how to provide a great pandas example 上的这篇文章以及如何提供minimal, complete, and verifiable example 并相应地修改您的问题。 how to ask a good question 上的这些提示也可能有用。
  • 谢谢!我有这个代码:距离(m)= [0, 0.0022, 0.0044, .... 0.81] 高度(m)= [0, 0.1, 0.5, 0.4, 0.9, .... 0.1]
  • 添加了答案,不是 100% 确定是否理解,如果有问题,请告诉我,或者更好地添加一些示例数据以提出预期输出的问题。

标签: python pandas numpy


【解决方案1】:

我相信您需要 cut 按间隔对列进行合并,然后通过 GroupBy.agg 使用聚合函数列表进行聚合:

d = pd.cut(df['Distance'], [0, 0.0022, 0.0044, .... 0.81 ])
h = pd.cut(df['Height'],  [0, 0.1, 0.5, 0.4, 0.9, .... 0.1])

df.groupby([d, h])['Height'].agg(['min','max','mean'])

【讨论】:

  • ok.. 但我想从 0.0439 m 的 18 个范围中提取 18 个值,这意味着 0 到 0.0439 之间; 0.0439 至 0.0878; ... 高达 0.7661 至 0.81
  • @Master03Skywalker np.arangenp.linspace?
  • @Master03Skywalker - 那么需要按两个间隔分组吗?像编辑过的答案一样?
  • 我想试试这个 bins = [0, 0.0439, 0.0878 ..... 0.7902] df['min'] = pd.cut(df.height.min, bins) # to min我在正确的道路上吗?
  • @Master03Skywalker - 哪些数据用于分箱?因为pd.cut 按列表中的间隔对其他数据进行分箱 - 这里由[0, 0.0022, 0.0044, .... 0.81 ][0, 0.1, 0.5, 0.4, 0.9, .... 0.1] 提供,也许可以帮助this
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
相关资源
最近更新 更多