我有一个熊猫数据框,我想根据另一列中的值设置一列中的值。有6种可能的情况,因此一个if / else无法正常工作。我无法将If / else的组合用于SBT> = x和<= y的情况。以下是我试图在Python中重新创建的Excel VBA代码中的迭代宏。它向下移动每一行进行检查。我知道在Python中它可以更加高效。
If SBT > 3.6 Then
ActiveCell.Offset(0, -1) = "2"
ElseIf SBT >= 2.95 And SBT <= 3.6 Then
ActiveCell.Offset(0, -1) = "3"
ElseIf SBT >= 2.6 And SBT <= 2.95 Then
ActiveCell.Offset(0, -1) = "4"
ElseIf SBT >= 2.05 And SBT <= 2.6 Then
ActiveCell.Offset(0, -1) = "5"
ElseIf SBT >= 1.31 And SBT <= 2.05 Then
ActiveCell.Offset(0, -1) = "6"
ElseIf SBT < 1.31 Then
ActiveCell.Offset(0, -1) = "7"
Else
End If
我看过
np.where(a < 4, -1, 100)
和
df['desired_output'] = df['data'].apply(lambda x: 'true' if x <= 2.5 else 'false')
这些可行的选择之一吗?我该如何嵌套语句(尤其是“这些值之间的”部分,还是有另一种更有效的方法呢?)下面的数据片段(SBT)和预期的结果(SBTno)。
SBT SBTn
7.00 2
1.28 7
3.64 2
2.97 3
2.83 4
这是从 cut
s=pd.cut(df.SBT,bins=[0,1.31,2.05,2.6,2.95,3.6,np.Inf],labels=[7,6,5,4,3,2])
0 2
1 7
2 2
3 3
4 4
df['SBTn']=s.astype(str)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句