首页 > 解决方案 > Pandas - 使用一系列值过滤行

问题描述

我有以下数据框df

DF_TEMP                           Date Home or Away Position  GameWeek  ... Price Goal Threat  Assists Threat  Goal Involvment Threat
Player                                                          ...                                                          
Andrew Robertson    2019-08-09         Home      DEF         1  ...   7.0    0.095392        0.076136                0.171528
Dejan Lovren        2019-08-09         Home      DEF         1  ...   5.5    0.000000        0.000000                0.000000
Joel Matip          2019-08-09         Home      DEF         1  ...   5.5    0.000000        0.000000                0.000000
Joseph Gomez        2019-08-09         Home      DEF         1  ...   5.5    0.000000        0.035294                0.035294
Nathaniel Phillips  2019-08-09         Home      DEF         1  ...   0.0    0.000000        0.000000                0.000000
...                        ...          ...      ...       ...  ...   ...         ...             ...                     ...
Michail Antonio     2020-02-24         Away      MID        27  ...   6.9    0.000000        0.448161                0.448161
Nathan Holland      2020-02-24         Away      MID        27  ...   4.4    0.000000        0.000000                0.000000
Pablo Fornals       2020-02-24         Away      MID        27  ...   6.0    0.427723        0.000000                0.427723
Robert Snodgrass    2020-02-24         Away      MID        27  ...   5.2    0.000000        0.226054                0.226054
Tomas Soucek        2020-02-24         Away      MID        27  ...   5.0    0.000000        0.000000                0.000000

如果我想根据“GameWeek”值过滤它,传递一个变量,如下所示:

gameweek = 15

只需执行以下操作:

filtered_df = df[df['GameWeek']==gameweek]

我将获得“GameWeek”为 15 的所有行。


问题

但是,如果我传递相同的变量gameweek,那么pandas给我从 'GameWeek' 1 到 15 的所有行的方法是什么?

我所有的查询应该是这样的:[:gameweek]

标签: pythonpandas

解决方案


使用df.le(),它基本上小于等于 ( <=):

filtered_df = df[df['GameWeek'].le(gameweek)]

或者

您也可以使用实际的<=运算符:

filtered_df = df[df['GameWeek'] <= gameweek]

推荐阅读