Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据列的条件以数据帧间隔填充NaN值_Python_Arrays_Pandas_Dataframe_Numpy - Fatal编程技术网

Python 根据列的条件以数据帧间隔填充NaN值

Python 根据列的条件以数据帧间隔填充NaN值,python,arrays,pandas,dataframe,numpy,Python,Arrays,Pandas,Dataframe,Numpy,我有一个dataframe,它有一个ID列和一个描述列,其中的开始值和停止值由ID表示。每个启动-停止对都由一个ID表示,在该对的下一次出现时,该ID将递增为1 我需要在STOP元素发生后立即将ID增加1(当然要更新NaN),并且这个相同的ID应该继续,直到我找到下一个STOP。 既然主要问题集中在覆盖停止事件上,那么如何处理第一个开始-停止对呢? 此外,在开始-停止或停止对内可以有任意数量的事件或段 我希望最后能像这样 这种方法需要应用于数十万行,而不是如示例所示的一堆行。请在这方面帮助我

我有一个dataframe,它有一个ID列和一个描述列,其中的开始值和停止值由ID表示。每个启动-停止对都由一个ID表示,在该对的下一次出现时,该ID将递增为1

我需要在STOP元素发生后立即将ID增加1(当然要更新NaN),并且这个相同的ID应该继续,直到我找到下一个STOP。 既然主要问题集中在覆盖停止事件上,那么如何处理第一个开始-停止对呢? 此外,在开始-停止或停止对内可以有任意数量的事件或段

我希望最后能像这样

这种方法需要应用于数十万行,而不是如示例所示的一堆行。请在这方面帮助我!提前感谢:)

#在每个站点创建一个组标签
cond=df.SEG_DESC==“停止”
df['tag']=cond.cumsum()
df.loc[cond,'tag']=df.loc[cond,'tag']-1
#对于每个标记组,使用back fillna
df['ID\u START\u STOP']=df.groupby('tag')['ID\u START\u STOP'].bfill().astype(int)
#在每个站点创建一个组标签
cond=df.SEG_DESC==“停止”
df['tag']=cond.cumsum()
df.loc[cond,'tag']=df.loc[cond,'tag']-1
#对于每个标记组,使用back fillna
df['ID\u START\u STOP']=df.groupby('tag')['ID\u START\u STOP'].bfill().astype(int)