如何仅从满足python中某些条件的列表中选择对象

问题描述 投票:0回答:1

我需要从较大的集合中选择具有某些重叠属性的对象。

我需要选择一组距中心半径为5的半径内,距中平面的高度为1-1.25且年龄不同的对象。到目前为止,我已经尝试了以下方法,但是它似乎并不能按需工作,特别是似乎不受高度选择的影响(它绝对应该如此)。选定的星星必须满足所有条件。

bulge=s.s[s.s['rxy']<5]

height=[i for i, x in enumerate(bulge['z']) if 1<x<1.25]
age1=[i for i, x in enumerate(bulge['age']) if x<0.1]
age2=[i for i, x in enumerate(bulge['age']) if 9<x<10]

ageheight1=bulge(height and age1)
ageheight2=bulge(height and age2)

下面是不同高度的径向密度分布

height from 0.75-1

height from 1-2

可以看到高度根本不影响结果,事实并非如此。

python python-3.x slice
1个回答
0
投票

假设您正在使用的数据类型是大熊猫DataFrame,那么您可以编写条件语句并按如下所示使用它来进行选择

ageheight1 = bulge[ (bulge['age']<0.1) & (bulge['z']<1.25) & (bulge['z']>1)]
ageheight2 = bulge[ (bulge['age']<10) & (bulge['age']>9) & (bulge['z']<1.25) & (bulge['z']>1)]
© www.soinside.com 2019 - 2024. All rights reserved.