熊猫布尔索引:匹配一组

时间:2020-06-29 20:33:14

标签: python pandas indexing

我试图弄清楚如何提取Pandas数据框中的条目,其中一列中的值与给定集合匹配。这是一个示例:

select sum(num.val * 1.0 / case when trm.val like '%year%' then 1 when trm.val like '%month%' then 12 else 365 end)
from string_split('2 year(s), 11 month(s), 5 day(s)',',')
     cross apply (select ltrim("value")) trm(val)
     cross apply (select cast(left(trm.val,charindex(' ',trm.val)-1) as int)) num(val)

如果我只想选择-------------- 2.930365296802 项,我可以做num = 5 df = pd.DataFrame(np.zeros((num,3)),index = np.arange(num),columns = ['ID','color','shape']) df['color'] = ['red','red','blue','blue','yellow'] df['shape'] = ['square','triangle','triangle','circle','circle'] df['ID'] = np.arange(num,num+5) ,甚至可以得到'blue' s:df[df.color == 'blue'],然后以这种方式执行其他操作。如何将其扩展到此类标准?如果我想返回所有IDdf[df.color == 'blue'].ID或某些常规设置的条目 blue (对我而言)最明显的是

yellow

但这给出了:colors = ['blue','yellow','pink']

做熊猫的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

isin

df[df.color.isin(colors)]

输出:

   ID   color     shape
2   7    blue  triangle
3   8    blue    circle
4   9  yellow    circle