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