tdy*_*tdy 5
start
当当前值notnull
和前一个值时发生isnull
stop
当当前值是notnull
和下一个值时发生isnull
使用 生成这些条件shift
并使用 分配loc
:
start = df.value.notnull() & df.value.shift().isnull()
stop = df.value.notnull() & df.value.shift(-1).isnull()
df.loc[start, 'flag'] = 'start'
df.loc[stop, 'flag'] = 'stop'
# value flag
# 0 NaN NaN
# 1 NaN NaN
# 2 1.0 start
# 3 2.0 NaN
# 4 1.0 NaN
# 5 3.0 NaN
# 6 2.0 stop
# 7 NaN NaN
# 8 1.0 start
# 9 2.0 stop
或者分配使用mask
:
df['flag'] = df['flag'].mask(start, 'start')
df['flag'] = df['flag'].mask(stop, 'stop')
更多推荐
熊猫,终点,起点,非空值
发布评论