python-基于2个条件用某个数值填充多个NaN值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-基于2个条件用某个数值填充多个NaN值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1784字,纯文字阅读大概需要3分钟。
内容图文
因此,基本上,我一直在尝试根据另一列填充列的nan值.
比方说,我有一列称为“容纳”(表示某栋房屋可容纳多少人)的列,另一列称为“卧室”.
为了填充这些nan值,我发现,例如,当一间房子有1间卧室时,最常见的容纳值是什么.它返回最常见的值为2.我现在想做的是用2填充对应于一居室房屋的列容纳的nan值.
数据示例如下:
accommodates bathrooms bedrooms
nan 2.0 1.0
nan 2.0 1.0
nan 2.0 1.0
nan 2.0 1.0
nan 2.0 1.0
nan 2.0 1.0
... ... ...
我对其他属性也做了类似的事情,所以尝试了以下代码:
accom_cond=((house.bedrooms==1) & (house.accommodates.isna()))
accom_val= [2,2,2,2,2,2,2,2,2,2,2,2,2,2]
house.accommodates= np.select(accom_cond,accom_val,house.accommodates)
假设在这种情况下有14个NaN值(另外,如果您知道一种比重复2次14次更好的方法,我会很感激:D)
但是,它不起作用.它返回错误:
ValueError: list of cases must be same length as list of conditions
我尝试打印accom_cond以查看发生了什么,并且返回了以下内容:
accom_cond
Out[156]:
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
15 False
16 False
17 False
18 False
19 False
20 False
21 False
22 False
23 False
24 False
25 False
26 False
27 False
28 False
29 False
...
我不明白为什么它不只返回遵循我定义的条件的14个空值.
谁能帮我这个?
(预先感谢您抽出宝贵的时间阅读本文!!)
解决方法:
accom_cond=[((house.bedrooms==1) & (house.accommodates.isna()))]
accom_val= [2]
按照numpy.select documentation:第一个参数是您的条件列表.第二个参数是您的选项列表.
这意味着,如果满足第一个条件,则返回第一个选项,否则,如果满足第二个条件,则返回第二个选项,依此类推.其他返回第三参数.
内容总结
以上是互联网集市为您收集整理的python-基于2个条件用某个数值填充多个NaN值全部内容,希望文章能够帮你解决python-基于2个条件用某个数值填充多个NaN值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。