我无法对difference_bearing列应用if语句。 如果column_bearing(float)列的值> 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()。
预先感谢
答案 0 :(得分:0)
如@coldspeed所述。
如果您需要了解组内的指标,则可以在此之后应用groupby来做到这一点,这样会更有效率。
df['result'] = np.where(df['difference_bearing'] > 20, -1, 0)
df_FCD_big.groupby(['tripID'])['result'].apply(sum)
答案 1 :(得分:-1)
这是克服错误的方法:
df_FCD_big.groupby(['tripID'])['difference_bearing'].apply(lambda x: x.apply(lambda y: -1 if y > 20 else 0))