根据2个条件从数据框中删除行

时间:2019-05-10 18:53:57

标签: python python-3.x pandas dataframe

我有一个python数据框,其中包含多个季节的NHL Player数据。我正在尝试删除2018-2019年未参加比赛的所有玩家行。例如,如果乔·琼斯(Joe Jones)在2018-2019赛季出战,我希望保留该赛季以及他参加的任何其他赛季的数据。

我在想代码看起来像这样:

for player in data.players:
      if data['Year'] == '2018-2019':
          save player's name
      else:
          remove player's data

例如,我的数据框如下所示

Year         Player     TM     GP
2018-2019    Joe        MTL    78
2017-2018    Joe        MTL    82
2016-2017    Joe        MTL    80
2017-2018    Jim        STL    76
2016-2017    Jim        STL    82
2018-2019    Jack       MIN    82

结果将是:

Year         Player     TM     GP
2018-2019    Joe        MTL    78
2017-2018    Joe        MTL    82
2016-2017    Joe        MTL    80 
2018-2019    Jack       MIN    82

1 个答案:

答案 0 :(得分:5)

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { if (this.auth.isLoggedIn()) { this.router.navigate(['/confirm'], { queryParams: route.queryParams }); } else { return true; } }

 canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

   if (!this.auth.isLoggedIn()) {
     this.router.navigate(['/login'], { queryParams: route.queryParams });
   } else {
     return true;
   }

 }

相同,但使用groupby.filter数组而不是df.groupby('Player').filter(lambda d: '2018-2019' in {*d.Year}) Year Player TM GP 0 2018-2019 Joe MTL 78 1 2017-2018 Joe MTL 82 2 2016-2017 Joe MTL 80 5 2018-2019 Jack MIN 82

values

用Numpy精心设计

set