.loc函数用于返回空数据帧的特定标签?



对于上下文,我试图过滤掉仅属于2021年的数据框中的行。

这是我的脚本代码:

test = all_SS_batting_columns.loc[all_SS_batting_columns['Year'] == '2021']

但是它只返回:

Empty DataFrame
Columns: [index, Year, Age, Tm, Lg, G, PA, AB, R, H, 2B, 3B, HR, RBI, SB, CS, BB, SO, BA, OBP, SLG]
Index: []

为了以防万一,下面是我的数据框架的样子:

index           Year   Age   Tm   Lg    G  ...  CS  BB   SO     BA    OBP    SLG
0      0           2016  23.0  CHW   AL   99  ...   2  13  117  0.283  0.306  0.432
1      1           2017  24.0  CHW   AL  146  ...   1  13  162  0.257  0.276  0.402
2      2           2018  25.0  CHW   AL  153  ...   8  30  149  0.240  0.281  0.406
3      3           2019  26.0  CHW   AL  123  ...   5  15  109  0.335  0.357  0.508
4      4           2020  27.0  CHW   AL   49  ...   2  10   50  0.322  0.357  0.529
5      5           2021  28.0  CHW   AL   88  ...   7  18   87  0.299  0.332  0.437
6      6          6 Yrs   NaN  NaN  NaN  658  ...  25  99  674  0.283  0.312  0.442
7      7  162 Game Avg.   NaN  NaN  NaN  162  ...   6  24  166  0.283  0.312  0.442
8      0           2019  21.0  TOR   AL   46  ...   4  14   50  0.311  0.358  0.571
9      1           2020  22.0  TOR   AL   29  ...   1   5   27  0.301  0.328  0.512
[10 rows x 21 columns]

复制df name查看所有列:

test = all_SS_batting_columns[all_SS_batting_columns.loc[all_SS_batting_columns['Year'] == '2021']] 

可以用where代替loc

test = all_SS_batting_columns.where[all_SS_batting_columns['Year'] == '2021']

如果要为Year 2021筛选Dataframe,请使用-不需要使用loc

test = all_SS_batting_columns[all_SS_batting_columns['Year'] == '2021']
test

最新更新