gpt4 book ai didi

pandas - 如何为通过 IntervalIndex 定义的列范围计算 2D DataFrame bin 明智的统计值?

转载 作者:行者123 更新时间:2023-12-04 11:02:42 25 4
gpt4 key购买 nike

我有一个 2D DataFrame,如下所示

  0.0  0.1  0.2  0.3  0.4  ...
0 0 1 NaN 3 4
1 NaN NaN NaN NaN 9
...

.对于每一行,我想计算 arithmetic meanarithmetic standard deviation对于特定的等宽列范围(箱),应通过 IntervalIndex 定义. NaN将被忽略。例如。与 pd.IntervalIndex.from_tuples([(0.0, 0.2), (0.2, 0.4)]我希望像
     (0.0, 0.2)  (0.2, 0.4)
mean 0. 3.5
std ...

间隔应支持不同的宽度。由于 DataFrame 具有多行多列,因此内存和执行性能至关重要。如何让我的预期输出尽可能高效?

最佳答案

您可以进行剪切和分组:

df.columns=df.columns.astype(float)
cuts = pd.cut(df.columns, bins=[0, 0.2, 0.4],include_lowest=True)

df.groupby(cuts, axis=1).mean()

输出:
   (-0.001, 0.2]  (0.2, 0.4]
0 0.5 3.5
1 NaN 9.0

注:您也可以通过 pd.IntervalIndex.from_tuples([(0.0, 0.2), (0.2, 0.4)])binspd.cut ,如果您已经在某处定义了它们。但是你需要小心 0 ,不包括在上述区间内。

注 2:看来 groupby().agg不支持 stdaxis=1 .您可以转换数据框:
df.T.groupby(cuts).agg(['mean','std']).T

输出:
        (-0.001, 0.2]  (0.2, 0.4]
0 mean 0.500000 3.500000
std 0.707107 0.707107
1 mean NaN 9.000000
std NaN NaN

关于pandas - 如何为通过 IntervalIndex 定义的列范围计算 2D DataFrame bin 明智的统计值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58695241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com