为了账号安全,请及时绑定邮箱和手机立即绑定

与熊猫一起进行事件搜索

与熊猫一起进行事件搜索

缥缈止盈 2022-08-16 15:30:39
我有一个数据帧,我想创建一个带有事件标签的列。如果条件为真,则该事件将获得一个数字。但是,如果连续的值是事件,我想给出相同的事件标签。你有什么想法吗?我尝试使用.apply和.rolling,但没有成功。数据帧:df = pd.DataFrame({'Signal_1' : [0,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1]})    Signal_1  ExpectedColumn0          0             NaN 1          0             NaN2          0             NaN3          1               14          1               15          0             NaN6          0             NaN7          1               28          1               29          1               210         1               211         0             NaN12         0             NaN13         0             NaN14         1               315         1               316         1               317         1               318         1               3
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

这是一种方法。首先创建倒计时标志,然后执行累积。然后使用 NaN 值进行更正。


import pandas as pd

import numpy as np


df = pd.DataFrame({'Signal_1' : [0,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1]})


# Only count up when the previous sample = 0, and the current sample = 1

df["shift"] = df["Signal_1"].shift(1)

df["countup"] = np.where((df["Signal_1"] == 1) & (df["shift"] == 0),1,0)


# Cumsum the countup flag and set to NaN when sample = 0

df["result"] = df["countup"].cumsum()

df["result"] = np.where(df["Signal_1"] == 0, np.NaN, df["result"] )


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信