Py学习  »  Python

如何根据python中的前一行值编辑现有的行值

Novice_Coder • 4 年前 • 615 次点击  

我有一个数据集,如下所示:

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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38411
 
615 次点击  
文章 [ 1 ]  |  最新文章 4 年前
WeNYoBen
Reply   •   1 楼
WeNYoBen    4 年前

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