Python TypeError:无法执行';兰德';使用数据类型为[float64]的数组和类型为[bool]的标量

Python TypeError:无法执行';兰德';使用数据类型为[float64]的数组和类型为[bool]的标量,python,pandas,Python,Pandas,我在python中运行了一个命令,如下所示: q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:'))]] 我得到了以下错误: TypeError: Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool] 我尝试使用的解决方案如下: 相应地将代码更改

我在python中运行了一个命令,如下所示:

q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:'))]]
我得到了以下错误:

TypeError: Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool]
我尝试使用的解决方案如下:

相应地将代码更改为:

q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:')) & (q1_fisher_r[(q1_fisher_r['TP53']==1)])]

但我仍然得到了与
TypeError相同的错误:无法使用dtyped[float64]数组和[bool]类型的标量执行“rand_u2;”,以便按多个条件进行过滤,按
&
链接它们并按以下方式进行过滤:

问题是此代码返回了筛选数据,因此无法按条件链接:

q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:'))]
类似问题:

q1_fisher_r[(q1_fisher_r['TP53']==1)]
样本

q1_fisher_r = pd.DataFrame({'TP53':[1,1,2,1], 'TumorST':['5:1:','9:1:','5:1:','6:1']})
print (q1_fisher_r)
   TP53 TumorST
0     1    5:1:
1     1    9:1:
2     2    5:1:
3     1     6:1

df = q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r['TumorST'].str.contains(':1:')]
print (df)
   TP53 TumorST
0     1    5:1:
1     1    9:1:

代码
q1_fisher[q1_fisher['TumorST'].str.contains(':1:')]
生成了10行,其中3行包含
TP53
。但是当我使用你的代码时:
q1_fisher_r[(q1_fisher_r['TP53']==1)和q1_fisher_r['TumorST'].str.contains(':1:')]
。它没有像预期的那样为输出提供3行。它只是给了我们一个机会headers@user288925-你能为@user288925添加一些示例数据吗?@user288925-添加了示例数据,工作方式与预期的第一个条件和第二个条件相同。它可以工作。。我获取了您的数据,并尝试了类似的方法来获取我的数据。我们回答了您的问题
q1_fisher_r = pd.DataFrame({'TP53':[1,1,2,1], 'TumorST':['5:1:','9:1:','5:1:','6:1']})
print (q1_fisher_r)
   TP53 TumorST
0     1    5:1:
1     1    9:1:
2     2    5:1:
3     1     6:1

df = q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r['TumorST'].str.contains(':1:')]
print (df)
   TP53 TumorST
0     1    5:1:
1     1    9:1: