python – 在pandas中如何在移动窗口的基础上计算’Countif’?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在pandas中如何在移动窗口的基础上计算’Countif’?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含750字,纯文字阅读大概需要2分钟。
内容图文
![python – 在pandas中如何在移动窗口的基础上计算’Countif’?](/upload/InfoBanner/zyjiaocheng/795/231a60eb1d4b4be98463f0354bb9b7e9.jpg)
特定
A = pd.DataFrame([[1, 5, -2], [2, 4, -4], [3, 3, -1], [4, 2, 2], [5, 1, 4]],
columns=['A', 'B', 'C'], index=[1, 2, 3, 4, 5])
假设您想要计算观察次数<在滚动的基础上,在最后3个观察中,C列为0.在excel中,您可以使用条件在指定窗口上滑动'countif'计算,并且所需的结果将是:
D = # of x < 0 on a rolling window basis of size 3
A
Out[79]:
A B C D
1 1 5 -2
2 2 4 -4
3 3 3 -1 3
4 4 2 2 2
5 5 1 4 1
如何使用Pandas以高效(Pythonic)的方式完成此操作?
谢谢
解决方法:
您可以在bool列上使用rolling_sum:
>>> A["D"] = pd.rolling_sum((A["C"] < 0), 3)
>>> A
A B C D
1 1 5 -2 NaN
2 2 4 -4 NaN
3 3 3 -1 3
4 4 2 2 2
5 5 1 4 1
这是因为True~1和False~0,我们有
>>> A["C"] < 0
1 True
2 True
3 True
4 False
5 False
Name: C, dtype: bool
内容总结
以上是互联网集市为您收集整理的python – 在pandas中如何在移动窗口的基础上计算’Countif’?全部内容,希望文章能够帮你解决python – 在pandas中如何在移动窗口的基础上计算’Countif’?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。