我有一个数据框和列表如下
op1 = pd.DataFrame({
'subject_id':[1,1,2,3,4,4,5],
'iid': [21,22,23,24,26,26,27],
'los':[121,122,123,124,111,111,131],
'area':['a','a','b','c','d','d','f'],
'date' : ['1/1/2017','1/2/2017','1/3/2017','1/4/2017','1/6/2017','1/6/2017','1/8/2109'],
'val' :[5,10,5,16,26,26,7]
})
sub_list = [1,2,3,4]
我想检查是否subject_id
从sub_list
存在op1
。如果存在,然后拿到distinct
从列中的值los
,iid
,area
为subject_id(之间找差距subject_id
1
and
4
(其中有重复)
我尝试了以下内容,但不能有多列
op1[op1['subject_id'].isin(sub_list)] # how to use distinct records here?
我必须将此应用于一百万条记录。因此,任何优雅高效的解决方案都是有帮助的
我正在寻找类似的东西
select distinct subject_id, iid,los, area from op1
where subject_id in [sub_list]
我希望我的输出如下所示
如果要仅返回选定的列,请执行以下操作:
result = op1.loc[op1["subject_id"].isin(sub_list), ["subject_id", "los", "iid", "area"]].drop_duplicates()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句