我有一个包含11列的数据框:Status1-Status5,Time1-Time5和Time_Min。
我希望能够复制我目前在SAS中拥有的代码,该代码执行以下操作:
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'])
我希望能够复制我目前在SAS中拥有的代码,该代码执行以下操作:
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;
列 STATUS 的预期输出应为
['a','c']
我尝试构建类似的东西(需要使用else if进行扩展)
df['STATUS'] = [a if x == y else b for x,y,a,b in df[['TIME_MIN','TIME_1','STATUS_1','STATUS_2']]]
但是这只会导致错误。我确定这是一个简单的修复,但我无法完全弄清楚。
np.where
吗? - rpanai