python - 如何在特定 "start"和 "stop"标记之间的位置填充 pandas 系列中的值?

标签 python pandas

我有一个 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 表示“开始”,-1 表示“停止”)并将 -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

关于python - 如何在特定 "start"和 "stop"标记之间的位置填充 pandas 系列中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55258435/

相关文章:

python - 使库文件夹对具有 GAME 项目目录的不同目录/子目录中的所有 python 脚本可见

python - 不能 'merge' 'DataFrameGroupBy'

python-3.x - 将 CSV 导入 pandas 数据框,以列表作为列

python - 使用 "df.sample(frac=1)"后如何删除添加的列?

python - 值错误 : Must specify a fill 'value' or 'method'

python - 如何检查系统中是否存在文件或不在 html 页面中使用 jinja?

python pandas 公式到数据框

python - pandas groupby 中增加日期

python - 类定义参数与普通类定义

python - 无法拆除 Pandas read_csv 使用的临时文件