我试图弄清楚如何提取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']
,然后以这种方式执行其他操作。如何将其扩展到此类标准?如果我想返回所有ID
或df[df.color == 'blue'].ID
或某些常规设置的条目
blue
(对我而言)最明显的是
yellow
但这给出了:colors = ['blue','yellow','pink']
做熊猫的正确方法是什么?
答案 0 :(得分:2)
isin
:
df[df.color.isin(colors)]
输出:
ID color shape
2 7 blue triangle
3 8 blue circle
4 9 yellow circle