python-3.x - 如何根据python中的前一行值编辑现有行值
问题描述
我有一个数据集如下:
date time value
20141102 1420 0
20141102 1425 2
20141103 1430 N/A
20141103 1435 N/A
20141104 1440 2
20141104 1445 N/A
20141105 1450 N/A
20141105 1455 2
但我想编辑列值。1. 如果前一个值为 N/A,我希望该值为 0 而不是 2。所需的输出应该是这样的:
date time value
20141102 1420 0
20141102 1425 2
20141103 1430 N/A
20141103 1435 N/A
20141104 1440 0
20141104 1445 N/A
20141105 1450 N/A
20141105 1455 0
解决方案
np.where
+shift
df['value']=np.where(df.value.isnull().shift()&df.value.eq(2),0,df.value)
df
Out[593]:
date time value
0 20141102 1420 0.0
1 20141102 1425 2.0
2 20141103 1430 NaN
3 20141103 1435 NaN
4 20141104 1440 0.0
5 20141104 1445 NaN
6 20141105 1450 NaN
7 20141105 1455 0.0
推荐阅读
- api - Flutter Rest API试图获取非obj的属性“密码”
- php - Laravel 8:在 ORM 中使用子查询的正确方法是什么?
- node.js - 如果对象属性值未找到,如何使用聚合管道更新多个文档并在数组中插入项目
- c# - 为什么从 CMD 运行时与从 Web 服务运行时得到不同的结果?(wkhtmltopdf)
- ubuntu - sqlsrv 扩展未显示
- javascript - SendGrid 不使用 HTML 输入中的 JavaScript 将电子邮件添加到联系人列表
- php - 在 PHP 中定义 webroot 路径
- javascript - cloudinary的销毁方法没有反应
- reactjs - 有没有办法将 Next.js 的 _app.js 中实现的代码的反射保留在特定目录中?
- arrays - 如何使用 Julia 中不同数组给出的形状值从伽马分布中采样数组?