我有以下数据框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]
答案 0 :(得分:1)
使用df.le()
,基本上小于等于({<=
):
filtered_df = df[df['GameWeek'].le(gameweek)]
OR
您还可以使用实际的<=
运算符:
filtered_df = df[df['GameWeek'] <= gameweek]
答案 1 :(得分:0)
您是说要获取GameWeek
范围从1到15的值吗?一种可能的方法是在range()
方法中查询.isin()
。
filtered_df = df[df['GameWeek'].isin(range(1,16))