加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-基于2个条件用某个数值填充多个NaN值

发布时间:2020-12-17 17:37:15 所属栏目:Python 来源:网络整理
导读:因此,基本上,我一直在尝试根据另一列填充列的nan值. 比方说,我有一列称为“容纳”(表示某栋房屋可容纳多少人)的列,另一列称为“卧室”. 为了填充这些nan值,我发现,例如,当一间房子有1间卧室时,最常见的容纳值是什么.它返回最常见的值为2.我现在想做的是用2填

因此,基本上,我一直在尝试根据另一列填充列的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]

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:第一个参数是您的条件列表.第二个参数是您的选项列表.
这意味着,如果满足第一个条件,则返回第一个选项,否则,如果满足第二个条件,则返回第二个选项,依此类推.其他返回第三参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读