如何在重复索引值的pandas数据框df.loc单元格?

所以我有一个大pandas数据框(Excel),看起来像这样:

Teams Season Points Team A 1 5 Team B 1 6 Team C 1 4 Team D 1 5 Team A 2 7 Team B 2 8 Team C 2 3 Team D 2 2 

你可以看到所有的团队在索引中重复。 我的问题是,有没有一种方法可以“定位”到本表中的特定单元格上

如果我要做df.loc [“团队A”,“积分”],则打印两个团队的值。 有没有一种方法可以指定AI队想要使用的赛季(第1季还是第2季)?

解决scheme与DataFrame.query

 print (df.query('Teams=="Team A" and Season==1')['Points']) Teams Team A 5 Name: Points, dtype: int64 

 print (df.query('Teams=="Team A" & Season==1')['Points']) Teams Team A 5 Name: Points, dtype: int64 

如果需要标量输出:

 #unutbu solution from deleted answer print (df.query('Teams=="Team A" & Season==1')['Points'].item()) 5 print (df.query('Teams=="Team A" & Season==1')['Points'][0]) 5 print (df.query('Teams=="Team A" & Season==1')['Points'].values[0]) 5 

创build另一个可能的解决schemeMultiIndex – 通过set_index添加列Season index ,然后select:

 df = df.set_index('Season', append=True) print (df) Points Teams Season Team A 1 5 Team B 1 6 Team C 1 4 Team D 1 5 Team A 2 7 Team B 2 8 Team C 2 3 Team D 2 2 print (df.loc[('Team A',1)]) Points 5 Name: (Team A, 1), dtype: int64