Python、pd数据帧基于条件提取值引发错误

Python、pd数据帧基于条件提取值引发错误,python,pandas,Python,Pandas,我有以下nba球员统计数据框架: 打印(self.df) 名称PTS REB AST\ (更新至:,2020-02-2419:39:00) 0詹姆斯·哈登35.26.4 7.4 1 Giannis Antetokounmpo 30.0 13.6 5.8 2特瑞杨30.0 4.4 9.2 3布拉德利·比尔29.6 4.4 6.0 4达米安·利拉德29.5 4.4 7.9 ... ... ...

我有以下nba球员统计数据框架:

打印(self.df)
名称PTS REB AST\
(更新至:,2020-02-2419:39:00)
0詹姆斯·哈登35.26.4 7.4
1 Giannis Antetokounmpo 30.0 13.6 5.8
2特瑞杨30.0 4.4 9.2
3布拉德利·比尔29.6 4.4 6.0
4达米安·利拉德29.5 4.4 7.9
...                                                    ...   ...   ...  ...   
261杰罗姆·罗宾逊3.11.71.1
262 Goga Bitadze 3.1 2.0 0.5
263 Jamonte绿3.0 1.7 0.5
264 Semi-Ojeleye 2.9 1.9 0.5
265马修·德拉维多瓦2.5 1.1 2.6
STL BLK FGM FGA FG%3PM 3PA\
(更新至:,2020-02-2419:39:00)
0                                    1.7  1.0  10.1  23.1  43.9  4.6  12.8   
1                                    1.1  1.1  11.1  20.1  55.2  1.5   4.8   
2                                    1.2  0.1   9.3  20.8  44.5  3.5   9.5   
3                                    1.1  0.4  10.1  22.2  45.3  2.6   8.0   
4                                    1.0  0.3   9.4  20.4  46.0  3.9  10.0   
...                                  ...  ...   ...   ...   ...  ...   ...   
261                                  0.3  0.2   1.2   3.5  34.1  0.5   1.7   
262                                  0.1  0.7   1.3   2.6  48.2  0.1   0.6   
263                                  0.5  0.1   1.2   2.3  51.1  0.1   0.6   
264                                  0.3  0.1   1.0   2.4  39.5  0.5   1.5   
265                                  0.3  0.0   0.9   2.7  32.3  0.2   1.4   
3P%FTM FTA FT%
(更新至:,2020-02-2419:39:00)
0                                    35.9  10.4  12.0  86.8  
1                                    31.1   6.4  10.4  61.5  
2                                    37.4   7.9   9.3  85.5  
3                                    32.0   6.9   8.1  84.4  
4                                    39.3   6.8   7.7  88.9  
...                                   ...   ...   ...   ...  
261                                  29.5   0.3   0.4  57.1  
262                                  15.4   0.5   0.7  69.0  
263                                  26.1   0.6   0.9  63.9  
264                                  35.0   0.5   0.5  88.9  
265                                  15.9   0.5   0.6  89.3  
[266行x 15列]
我试图通过缩小df来分析一些统计数据,并获得高于两列平均值的所有统计数据,当试图根据条件提取一些值时,我得到以下错误

def get_stat(自):
pts_fgm_df=自测向头部(n=120)
rslt_df=pts_fgm_df.loc[pts_fgm_df['pts']>pts_fgm_df['pts'].mean()&pts_fgm_df['FG%]>pts_fgm_df.mean()
打印(rslt_df)

我的解决方案可能性:

top_df=self.df.head(n=120)
平均值=顶部值['pts']。平均值()
mean_fgp=top_df['FG%'].mean()
rslt_df=顶部_df[
(顶部测向['PTS']>=平均分)&
(顶部df['FG%']>=平均值)
]
返回rslt_df
我的问题是,当我写下逻辑时,看不清楚

因此,解决方案是首先为每个语句指定一个变量名。 平均值=顶部值['pts']。平均值() mean_fgp=top_df['FG%'].mean() pts=顶部测向['pts'] fgp=顶面_df['FG%'] 然后根据它们进行过滤:

#这使我们更清楚地看到缺少括号之类的内容。
rslt_df=顶部_df[
(平均分>=平均分)&
(fgp>=平均值(fgp)
]
返回rslt_df

我假设您的布尔表达式缺少一些括号:
rslt_df=(pts_fgm_df.loc[pts_fgm_df['pts']>pts_fgm_df['pts'].mean())和(pts_fgm_df['FG%]>pts_fgm_df.mean())
。否则,运算符优先级将首先尝试评估(&F)。请用文字解释您的解决方案,以供将来的读者阅读。不鼓励只使用代码的答案。
TypeError: ufunc 'bitwise_and' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''