【发布时间】:2019-12-11 13:03:04
【问题描述】:
我有一个熊猫数据框,我想根据另一列中的值设置一列中的值。有 6 种可能的情况,因此单个 if/else 不起作用。我无法将 If/else 组合用于 SBT >=x 和
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) 的 sn-p。
SBT SBTn
7.00 2
1.28 7
3.64 2
2.97 3
2.83 4
【问题讨论】:
-
.apply() with lambda 有它的限制,你有没有想过做一个函数然后用 .apply() ?
-
我对这个很陌生,这个功能会是什么样子?
标签: python pandas dataframe logic