回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个包含11列的数据帧:Status1-Status5,Time1-Time5&Time\u Min</p>
<pre><code>df = pd.DataFrame([[100,200,150,400,500,'a','b','a','c','a',100], [300,400,200,500,250,'b','b','c','c','c',200]], columns=['TIME_1', 'TIME_2', 'TIME_3', 'TIME_4', 'TIME_5','STATUS_1','STATUS_2','STATUS_3','STATUS_4','STATUS_5','TIME_MIN'])
</code></pre>
<p>我想复制一个我目前在SAS中的代码,它可以执行以下操作</p>
<pre><code>IF TIME_1 = TIME_MIN THEN STATUS = STATUS_1;
ELSE IF TIME_2 = TIME_MIN THEN STATUS = STATUS_2;
ELSE IF TIME_3 = TIME_MIN THEN STATUS = STATUS_3;
ELSE IF TIME_4 = TIME_MIN THEN STATUS = STATUS_4;
ELSE STATUS = STATUS_5;
</code></pre>
<p>列状态的预期输出为</p>
<pre><code>['a','c']
</code></pre>
<p>我试着沿着这条线建造一些东西(这需要用其他的ifs来扩展)</p>
<pre><code>df['STATUS'] = [a if x == y else b for x,y,a,b in df[['TIME_MIN','TIME_1','STATUS_1','STATUS_2']]]
</code></pre>
<p>但这只是一个错误。我相信这是个简单的解决办法,但我不太明白。</p>