应用if语句groupby dataframe。级数的真值是模糊的

2024-09-24 22:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能在列上应用if语句。 如果列差的值大于20。预期结果为-1。在所有其他情况下,预期结果为0。你知道吗

df_FCD_big.groupby(['tripID'])['difference_bearing'].apply(lambda x: -1 if x >20 else 0)

弹出以下警告。你知道吗

级数的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。你知道吗

提前谢谢


Tags: lambda警告dfif情况语句elseapply
2条回答

如@coldspeed所述。
如果您需要了解组内的指标,可以在之后应用groupby,这样效率会更高。你知道吗

df['result'] = np.where(df['difference_bearing'] > 20, -1, 0)
df_FCD_big.groupby(['tripID'])['result'].apply(sum)

以下是克服错误的方法:

df_FCD_big.groupby(['tripID'])['difference_bearing'].apply(lambda x: x.apply(lambda y: -1 if y > 20 else 0))

相关问题 更多 >