python - Pandas 基于另一列值的条件填充
问题描述
我正在研究 bigmart 数据集,我想根据另一列的值替换一列的缺失值,实际上:
Outlet_Size sales_bin
0 Medium 3000-4000
1 Medium 0-1000
2 Medium 2000-3000
3 NaN 0-1000
4 High 0-1000
... ... ...
8518 High 2000-3000
8519 NaN 0-1000
8520 Small 1000-2000
8521 Medium 1000-2000
8522 Small 0-1000
So if train[“Outlet_Size”] value is a NaN and train[“sales_bin”] is “0-1000”
train[“Outlet_Size”] value shoud become “Small”
else == Medium
但是我真的不知道怎么写,而且我发现的所有信息都让我感到困惑
有可能做到吗?如何?
非常感谢
解决方案
用于Series.isna
创建布尔掩码,然后使用np.where
+从并基于条件Series.eq
选择选项equals :Small
Medium
sales_bin
0-1000
m = df['Outlet_Size'].isna()
df.loc[m, 'Outlet_Size'] = np.where(df.loc[m, 'sales_bin'].eq('0-1000'), 'Small', 'Medium')
结果:
print(df)
Outlet_Size sales_bin
0 Medium 3000-4000
1 Medium 0-1000
2 Medium 2000-3000
3 Small 0-1000
4 High 0-1000
8518 High 2000-3000
8519 Small 0-1000
8520 Small 1000-2000
8521 Medium 1000-2000
8522 Small 0-1000
推荐阅读
- php - 在多维中格式化simpe数组
- redis - 无法从 systemd 启动 redis
- python - Gmail中的UID - 每个“文件夹”还是每个用户帐户唯一?
- hive - 列名作为参数
- java - io.netty.handler.codec.DecoderException:javax.net.ssl.SSLHandshakeException:收到致命警报:bad_certificate
- javascript - 修改渐变叠加位置
- javascript - 每次在循环中运行的计时器
- javascript - React Datepicker在被点击时返回错误的ID
- google-apps-script - 表格嵌入功能 - 仅适用于电子表格所有者,不适用于“任何人”
- python - 如何在 python 中从 aws s3 存储桶读取多个图像到 cv2.imread?