我有一个需要根据条件过滤的数据框,如下所示。本质上,除非经过验证的速度(除非等于0),否则使用“速度”列进行过滤。
above_limit_speed = (df_cimbined_traff[df_cimbined_traff['Speed'] > df_cimbined_traff[df_cimbined_traff['Verified_speed']) > df_cimbined_traff['Postedspeed']].groupby('deploymentid')['Speed'].count().reset_index().rename(columns={'Speed': 'count_above_speed_limit'}).set_index('deploymentid')
示例数据框
X_value - Speed - Verified_Speed - Post Speed
bluergh - 50 - 51 - 49
blasdu - 50 - 0 - 30
ausdas - 60-60-40
我已经尝试了上面的方法以及它的各种变体,但是对于使用Pandas在Python中解决此问题的最佳方法感到非常困惑。
基本上,
我想将发布速度与验证速度进行比较,除非该速度等于零,而我想将其与速度进行比较。
不胜感激!
谢谢!
答案 0 :(得分:1)
您可以使用所需的逻辑创建新列prev_speed
df['prev_speed'] = df.Verified_Speed
df.prev_speed.update(df.loc[df.prev_speed == 0, 'Speed'])