熊猫,使用条件语句进行过滤

时间:2020-09-01 15:20:05

标签: python pandas

我有一个需要根据条件过滤的数据框,如下所示。本质上,除非经过验证的速度(除非等于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中解决此问题的最佳方法感到非常困惑。

更新

基本上,

我想将发布速度与验证速度进行比较,除非该速度等于零,而我想将其与速度进行比较。

不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用所需的逻辑创建新列prev_speed

df['prev_speed'] = df.Verified_Speed
df.prev_speed.update(df.loc[df.prev_speed == 0, 'Speed'])