Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何填充与另一列上的另一个观测值位于同一行的列的某些单元格?_Python_Pandas_Numpy_Data Cleaning - Fatal编程技术网

Python 如何填充与另一列上的另一个观测值位于同一行的列的某些单元格?

Python 如何填充与另一列上的另一个观测值位于同一行的列的某些单元格?,python,pandas,numpy,data-cleaning,Python,Pandas,Numpy,Data Cleaning,我基本上有一列带有邮政编码,另一列带有邻居,我在邮政编码列上有一些空值要填充。所以首先我找到了丢失的邮政编码对应的街区。其次,我找到了那个街区最常见的邮政编码 下面是邻居X的一些邮政编码。这个特定邻居的模式是,比方说Y。我试图做的是,在邻居列下有邻居X的行,填充相应的邮政编码列,其中值为空 这是邻里X的模式。它返回实际模式(BS8)和包含邻里X所有邮政编码的完整列表 <bound method Series.mode of 25 BS8 1904 BS1

我基本上有一列带有邮政编码,另一列带有邻居,我在邮政编码列上有一些空值要填充。所以首先我找到了丢失的邮政编码对应的街区。其次,我找到了那个街区最常见的邮政编码

下面是邻居X的一些邮政编码。这个特定邻居的模式是,比方说Y。我试图做的是,在邻居列下有邻居X的行,填充相应的邮政编码列,其中值为空

这是邻里X的模式。它返回实际模式(BS8)和包含邻里X所有邮政编码的完整列表

 <bound method Series.mode of 25      BS8 

    1904    BS1 
    1919    BS8 
    2070    BS1 
    2083    BS1 
    2099     NaN
    2105    BS1 
    2228     NaN
    2256    BS1 
    2265    BS8 
    2285    BS8 
    2298    BS8
如果HH最常见的邮政编码是,比方说Z,如果要填写相应的邮政编码,如下所示:

neighbourhood      Postcode
    WH                 BS9 
    SB                 BS9 
    HF                 BS9 
    WH                 BS9 
    WH                 BS9 
    SB                 BS9 
    HH                 Z
    SGTH               nan
在网上查看后,我尝试了下面的代码,但没有成功

airbnb.postcode = airbnb.apply( 
        lambda row: "BS8 " if (airbnb.neighbourhood=="HH" & airbnb.postcode== np.NaN) else row.postcode )

使用
np。选择

数据:


第一个数据帧是什么?@anky_91它不工作。。。它返回以下错误:TypeError:无法将dtyped[object]数组与[bool]类型的标量进行比较我以前尝试过类似的方法,但没有luck@Chris第一件事只是某个国家邮政编码列表的一部分neighbourhood@J.Doe如果您想进一步了解infonp,请看下面的示例。在哪里也可以使用infonp,不敢相信我和np.nan一起忽略了isnap@J.Doe还要注意,对于
nan
您不能使用
=
,因为
np.nan!=np.nan
airbnb.postcode = airbnb.apply( 
        lambda row: "BS8 " if (airbnb.neighbourhood=="HH" & airbnb.postcode== np.NaN) else row.postcode )
# df2:
#       neighbourhood Postcode
#     0            WH      BS9
#     1            SB      BS9
#     2            HF      BS9
#     3            WH      BS9
#     4            WH      BS9
#     5            SB      BS9
#     6            HH      BS8
#     7          SGTH      NaN

conditions = [
    ((df2['neighbourhood'] == 'HH') & (df2['Postcode'].isna())),
]

choices = [
    'BS8'
]

df2['Postcode'] = np.select(conditions, choices, df2['Postcode'])

  neighbourhood Postcode
0            WH      BS9
1            SB      BS9
2            HF      BS9
3            WH      BS9
4            WH      BS9
5            SB      BS9
6            HH      BS8
7          SGTH      NaN