Python 对数据帧嵌套数组应用条件

Python 对数据帧嵌套数组应用条件,python,pandas,dataframe,Python,Pandas,Dataframe,从一个数据帧,如下所示: 我想应用一个过滤器,这样它只显示包含10>μ介子pt>20范围内所有元素或电子pt>100范围内部分元素的数组的行 为此,我定义了两个函数: def anyCut(x,minn,maxx): 对于x中的i: 如果i>minn且i1) & (df[“nMuon”]>1) ) & ( (df[“电子电荷”]。应用(λx:all(x=-1))) & ( ( df[“Electron_pt”]应用(λx:anyCut(x,minElectronPt,MaxElectronNP

从一个数据帧,如下所示:

我想应用一个过滤器,这样它只显示包含
10>μ介子pt>20
范围内所有元素电子pt>100范围内部分元素的数组的行

为此,我定义了两个函数:

def anyCut(x,minn,maxx):
对于x中的i:
如果i>minn且imaxx:
返回错误
返回真值
然后,应用它:

minElectronPt=50.0
maxElectronPt=100.0
minMuonPt=10
maxMuonPt=20
df[
(
(df[“电子”]>1)
&
(df[“nMuon”]>1)
)
&
(
(df[“电子电荷”]。应用(λx:all(x=-1)))
&
(
(
df[“Electron_pt”]应用(λx:anyCut(x,minElectronPt,MaxElectronNPT))
)
|
(
df[“μ介子点”]应用(λx:allCut(x,minMuonPt,maxMuonPt))
)
)
)
].head()
获取:


是否有任何方法可以在不通过嵌套数组循环的情况下应用此筛选器(即替换
anyCut
allCut
函数)?

这里您可以使用Numpy数组并避免for循环,如:

将numpy导入为np
def anyCut(x,明尼苏达州,最大值):
x_np=np.数组(x)
如果(x_np>minn).all()和(x_npminn.all()或(x_np