Python – 运行平均值如果数字大于0
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python – 运行平均值如果数字大于0,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1224字,纯文字阅读大概需要2分钟。
内容图文
![Python – 运行平均值如果数字大于0](/upload/InfoBanner/zyjiaocheng/728/a1cc8f871ec449dd8169a5f5d7021f1a.jpg)
我的数据框中有一个由数字组成的列.我喜欢在数据框中有另一个列,它采用大于0的运行平均值,理想情况下我可以在没有迭代的情况下进行numpy. (数据很大)
Vals Output
-350
1000 1000
1300 1150
1600 1300
1100 1250
1000 1200
450 1075
1900 1192.857143
-2000 1192.857143
-3150 1192.857143
1000 1168.75
-900 1168.75
800 1127.777778
8550 1870
码:
list =[-350, 1000, 1300, 1600, 1100, 1000, 450,
1900, -2000, -3150, 1000, -900, 800, 8550]
df = pd.DataFrame(data = list)
解决方法:
选项1
扩张和意味着
df.assign(out=df.loc[df.Vals.gt(0)].Vals.expanding().mean()).ffill()
如果你的DataFrame中有其他列具有NaN值,那么这个方法也会填充,所以如果这是一个问题,你可能要考虑使用这样的东西:
df['Out'] = df.loc[df.Vals.gt(0)].Vals.expanding().mean()
df['Out'] = df.Out.ffill()
这只会填写Out列.
选项2
面具:
df.assign(Out=df.mask(df.Vals.lt(0)).Vals.expanding().mean())
这两个导致:
Vals Out
0 -350 NaN
1 1000 1000.000000
2 1300 1150.000000
3 1600 1300.000000
4 1100 1250.000000
5 1000 1200.000000
6 450 1075.000000
7 1900 1192.857143
8 -2000 1192.857143
9 -3150 1192.857143
10 1000 1168.750000
11 -900 1168.750000
12 800 1127.777778
13 8550 1870.000000
内容总结
以上是互联网集市为您收集整理的Python – 运行平均值如果数字大于0全部内容,希望文章能够帮你解决Python – 运行平均值如果数字大于0所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。