下面是一个SAS代码,我正试图将其转换为python。我可以考虑使用listcomprehension
来实现这一点。或者通过使用np.where
使用大型嵌套条件。但我认为有一种更有效的方法来实现产出
熊猫数据帧有day1, day2 ... day30
列和dw1, dw2... dw30
列。条件是在day2 to day30
中查找大于0的任何列(例如day(x)
),并将'Y'
分配给标志列。如果dw(x-1)
不是0,则将'Y'
分配给dwflag
资料
day1 day2 day3 day4 dw1 dw2 dw3 dw4
1 1 0 1 0 0 0 0
1 0 1 1 1 0 0 0
1 1 1 0 0 0 0 0
1 1 1 0 0 0 1 0
1 1 1 1 0 0 0 0
预期产量
day1 day2 day3 day4 dw1 dw2 dw3 dw4 dflag dwflag
1 1 0 1 0 0 0 0 Y N
1 0 1 1 1 0 0 0 Y Y
1 1 1 0 0 0 0 0 Y N
1 1 1 0 0 0 1 0 Y Y
1 1 1 1 0 0 0 0 N N
SAS代码
dflag= 'N';
DO I = 2 TO 30 WHILE(dflag='N');
IF day(I) = 0 THEN
DO;
dflag='Y';
IF dw(I-1) NE 0 THEN
dwflag = 'Y';
END;
END;
IF dwflag NE 'Y' THEN dwflag='N';
这就是我最终能想到的
相关问题 更多 >
编程相关推荐