如何使用 pandas 创建可以将相邻但分解的“on”值组合成组的新列

问题描述 投票:0回答:0

我有一个包含一列 1s(对应于“ON”信号)和 0s(对应于“off”信号)的数据帧。

我的数据中有一些噪音,例如第一个“ON”信号在中间有一些 0,这使得它看起来很破碎。其他“ON”信号也会发生同样的情况。这使得很难计算我的数据中总共有多少个“ON”信号。看起来比有的还要多!

有没有办法让我把这些分组,填补空白?理想情况下,我想创建一个新列来指示到那时为止“ON”信号的当前数量。

我尝试了滚动均值和阈值类型的方法......任何帮助将不胜感激。

这给了我它从“ON”变为“OFF”时的位置,让我在它发生时查找时间索引:

df.loc[:,'Change'] = np.abs(df['ONOFF_Signal'].diff())
On_off_timestamps = df.query("Change == 1")['Time'].values

##Sample_data for two "ON" groupings. 
df['Change'] = [0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0]

#Output wanted: 
[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0]

##So that I can generate a count column "mask" up to each row of how many "ON" values have occurred: 
[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
python pandas dataframe
© www.soinside.com 2019 - 2024. All rights reserved.