Python 3.x 标志从0变为1时如何提取前后行
我有一个数据帧,我想在标志从0变为1之前提取2行,并获取值“B”最小的行,同时在标志1之后提取两行,并获取最小值为“B”的行Python 3.x 标志从0变为1时如何提取前后行,python-3.x,pandas,numpy,dataframe,pandas-groupby,Python 3.x,Pandas,Numpy,Dataframe,Pandas Groupby,我有一个数据帧,我想在标志从0变为1之前提取2行,并获取值“B”最小的行,同时在标志1之后提取两行,并获取最小值为“B”的行 df=pd.DataFrame({'A':[1,3,4,7,8,11,1,15,20,15,16,87], 'B':[1,3,4,6,8,11,1,19,20,15,16,87], 'flag':[0,0,0,0,1,1,1,0,0,0,0,0]}) df_out=pd.DataFrame({'A':[
df=pd.DataFrame({'A':[1,3,4,7,8,11,1,15,20,15,16,87],
'B':[1,3,4,6,8,11,1,19,20,15,16,87],
'flag':[0,0,0,0,1,1,1,0,0,0,0,0]})
df_out=pd.DataFrame({'A':[4,1],
'B':[4,1],
'flag':[0,1]})
要查找两行感兴趣的索引,请运行:
ind1 = df[df.flag.shift(-1).eq(0) & df.flag.shift(-2).eq(1)].index[0]
ind2 = df[df.index > ind1].B.idxmin()
对于您的数据样本,结果是2和6
然后,要使用这些索引检索行,请运行:
df.loc[[ind1, ind2]]
结果是:
A B flag
2 4 4 0
6 1 1 1
请发布预期输出和reason@Aditya.Kommu添加了您的新列条件是什么?还有A栏?不清楚,你能澄清一下你想提取什么或进一步解释一下吗?很难理解这个输出来自哪里