gpt4 book ai didi

python - 统计每个月的值,低于一定限度填NaN

转载 作者:行者123 更新时间:2023-12-04 01:14:13 24 4
gpt4 key购买 nike

我正在使用数据框,其中每一列代表一家公司。该索引是一个每日频率的 datetime 索引。我的问题如下:对于每家公司,如果该月的值少于 20 个,我想用 NaN 填充该月。在下面的示例中,这意味着 Company_1 在 2012-08-31 的条目 0.91 将更改为 NaN,而 company_23 将保持不变。

               Company_1      Company_2   Company_3
2012-08-01 NaN 0.99 0.11
2012-08-02 NaN 0.21 NaN
2012-08-03 NaN 0.32 0.40
... ... ... ...
2012-08-29 NaN 0.50 -0.36
2012-08-30 NaN 0.48 -0.32
2012-08-31 0.91 0.51 -0.33

Total Values: 1 22 21

我正在努力寻找一种有效的方法来计算每只股票每个月的值(value)数量。理论上我可以编写一个函数来创建一个新的数据框,它报告每个月(以及每只股票)的值的数量,然后将该数据框用于原始公司信息,但我确信必须有一个更简单的方法方法。非常感谢任何帮助。提前致谢。

最佳答案

groupby 使用 count 每月频率和 transform 的数据帧,然后使用 Series.lt 创建一个 bool 掩码并使用此掩码在数据框中填充 NaN 值:

df1 = df.mask(df.groupby(pd.Grouper(freq='M')).transform('count').lt(20))

print(df1)
Company_1 Company_2 Company_3
2012-08-01 NaN 0.99 0.11
2012-08-02 NaN 0.21 NaN
2012-08-03 NaN 0.32 0.40
....
2012-08-29 NaN 0.50 -0.36
2012-08-30 NaN 0.48 -0.32
2012-08-31 NaN 0.51 -0.33

关于python - 统计每个月的值,低于一定限度填NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63881236/

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