gpt4 book ai didi

python - 仅当每行中的值数量高于 python pandas 中的特定数量时才计算平均值

转载 作者:行者123 更新时间:2023-11-28 20:57:45 24 4
gpt4 key购买 nike

我有一个包含九列的每日时间序列数据框。每列代表来自不同方法的测量。我只想在有两个以上的测量值时才计算每日平均值,否则要分配为 NaN。如何使用 Pandas 数据框做到这一点?

假设我的 df 看起来像:

             0    1      2    3     4     5    6      7     8
2000-02-25 NaN 0.22 0.54 NaN NaN NaN NaN NaN NaN
2000-02-26 0.57 NaN 0.91 0.21 NaN 0.22 NaN 0.51 NaN
2000-02-27 0.10 0.14 0.09 NaN 0.17 NaN 0.05 NaN NaN
2000-02-28 NaN NaN NaN NaN NaN NaN NaN NaN 0.14
2000-02-29 0.82 NaN 0.75 NaN NaN NaN 0.14 NaN NaN

我期望的平均值如下:

             0    
2000-02-25 NaN
2000-02-26 0.48
2000-02-27 0.11
2000-02-28 NaN
2000-02-29 0.57

最佳答案

使用where根据 DataFrame.count 创建的条件获取 NaN 的值用于排除 NaN 的计数并通过 Series.gt 进行比较(>):

s = df.where(df.count(axis=1).gt(2)).mean(axis=1)
#alternative soluton with changed order
#s = df.mean(axis=1).where(df.count(axis=1).gt(2))
print (s)
2000-02-25 NaN
2000-02-26 0.484
2000-02-27 0.110
2000-02-28 NaN
2000-02-29 0.570
dtype: float64

关于python - 仅当每行中的值数量高于 python pandas 中的特定数量时才计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52363520/

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