回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我的代码和输入:</p>
<pre><code>import pandas as pd
df1 = pd.DataFrame({'frame':[1,2,3,4,5,6,7,8,9,10,11,12],
'label':['other','splenic','other','other','hepatic','other','other','other','hepatic','other','splenic','other']})
df2 = pd.DataFrame({'frame':[1,2,3,4,5,6,7,8,9,10,11,12],
'label':['other','heaptic','other','other','splenic','other','other','other','splenic','other','hepatic','other']})
label = ['other','hepatic','splenic']
for i in range(0,len(label)):
if label[i] not in 'other':
start_frame = df1.loc[(df1['label']=='splenic'),'frame']
end_frame = df1.loc[(df1['label']=='hepatic'),'frame']
else: print('other')
</code></pre>
<p>假设我想要在两个发生标签(<code>splenic</code>和<code>hepatic</code>)之间的掩码开始/结束帧进行进一步计算。我的问题是,在数据帧中,标签以不同的顺序出现。例如,在<code>df1</code>中,<code>splenic</code>首先出现在<code>frame</code>=2处,因此它将是我的<code>start_frame</code>。下一个我的<code>end_frame</code>是当我出现时<code>hepatic</code>,其中<code>frame</code>=5。如果我们继续下一步,我的<code>start_frame</code>将是<code>hepatic</code>,其中<code>frame</code>=9,<code>end_frame</code>是<code>splenic</code>,其中<code>frame</code>=11。在df2中,顺序相反。对于哪个先出现,没有真正的模式。<br/>
所以我不能说<code>splenic</code>将是我的“开始”<code>hepatic</code>将是“结束”。它取决于哪个先出现:<code>hepatic</code>或<code>splenic</code>,所以它将是“开始”,第二个标签将分别是“结束”。
我对<code>df1</code>的期望:</p>
<pre><code>start_frame=[2,9]
end_frame=[5,11]
</code></pre>