ksw*_*01_ 5 python dataframe pandas
我想找到一列的起点和终点并对其进行标记,如下所示:
| 价值 | 旗帜 |
|---|---|
| 南 | 南 |
| 南 | 南 |
| 1 | 开始 |
| 2 | 南 |
| 1 | 南 |
| 3 | 南 |
| 2 | 停止 |
| 南 | 南 |
| 1 | 开始 |
| 2 | 停止 |
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
Run Code Online (Sandbox Code Playgroud)
或者使用以下方式分配mask:
df['flag'] = df['flag'].mask(start, 'start')
df['flag'] = df['flag'].mask(stop, 'stop')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |