Python 3.x 如何在数据帧中从提到字符串的单元格到下一个提到字符串的单元格中选择单元格范围,Python

Python 3.x 如何在数据帧中从提到字符串的单元格到下一个提到字符串的单元格中选择单元格范围,Python,python-3.x,dataframe,Python 3.x,Dataframe,在数据框中,从具有所述字符串的单元格到具有所述字符串的下一个单元格,选择单元格范围。示例数据框: df=pd.DataFrame({ “text”:“a,start,b,c,d,end,x,y,z,start,q,w,e,r,end,t,e,w”。拆分(,) }) 解决方案: pd.concat([ df[s:e+1]用于s,拉链中的e( df[df['text']=='start'].索引, df[df['text']=='end'].index)]) 前后: 如果你真的想在纯熊猫身上

在数据框中,从具有所述字符串的单元格到具有所述字符串的下一个单元格,选择单元格范围。示例数据框:

df=pd.DataFrame({
“text”:“a,start,b,c,d,end,x,y,z,start,q,w,e,r,end,t,e,w”。拆分(,)
})
解决方案:

pd.concat([
df[s:e+1]用于s,拉链中的e(
df[df['text']=='start'].索引,
df[df['text']=='end'].index)])
前后:

如果你真的想在纯熊猫身上做的话。除非您希望支持重叠序列(上面的解决方案确实如此),否则我会选择一个简单的迭代,老实说:

writing=False
结果=[]
对于i,df['text']中的标记。iteritems():
如果令牌==“开始”:
书写=正确
如果是书面形式:
结果.追加(i)
如果令牌=='end':
书写=错误
df.loc[结果]

非常不清楚你想说什么…谢谢Rudolfovic:这解决了我很乐意帮助的问题,考虑接受和支持: