加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在特定的“开始”和“停止”标记之间的位置填充pandas系列中

发布时间:2020-12-20 11:10:11 所属栏目:Python 来源:网络整理
导读:我有一个DataFrame,如下所示: df[16820:16830] data0 start_stop16820 1 016821 1 116822 1 016823 1 016824 1 016825 1 -116826 0 016827 0 016828 1 116829 0 016830 1 -1 我需要做的是将start_stop列中1和-1之间的值标记为有效(1表示’start’,-1表示’s
我有一个DataFrame,如下所示:

df[16820:16830]
       data0  start_stop
16820      1           0
16821      1           1
16822      1           0
16823      1           0
16824      1           0
16825      1          -1
16826      0           0
16827      0           0
16828      1           1
16829      0           0
16830      1          -1

我需要做的是将start_stop列中1和-1之间的值标记为有效(1表示’start’,-1表示’stop’),-1和1之间的值作为无效(我稍后将丢弃的垃圾) .
有没有有效的方法来做这个而不是在整个数据帧上循环迭代?

最终结果如下:

data0  start_stop  valid
16820      1           0   False
16821      1           1   True
16822      1           0   True
16823      1           0   True
16824      1           0   True
16825      1          -1   False
16826      0           0   False
16827      0           0   False
16828      1           1   True
16829      0           0   True
16830      1          -1   False
...

实现它的相关循环是,我认为:

df = df.reset_index(drop=True)
value = False
for i in range(0,df.shape[0]):
    if df.loc[i,'start_stop'] == 1:
        df.loc[i,'valid'] = True
        value = True
    elif df.loc[i,'start_stop'] == -1:
        df.loc[i,'valid'] = False
        value = False
    if df.loc[i,'start_stop'] == 0:
        df.loc[i,'valid'] = value

谢谢!

解决方法

这应该工作

df['valid'] = df.start_stop.cumsum()

然后

df['valid'] = df['valid'].apply(lambda x: True if x==1 else False)

df

    start_stop  valid
0            0  False
1            1   True
2            0   True
3            0   True
4            0   True
5           -1  False
6            0  False
7            0  False
8            1   True
9            0   True
10          -1  False

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读