簡體   English   中英

有什么有效的方法可以在 python 中編寫此代碼

[英]Is there any efficient way to write this code in python

我想在 python 中編寫這段代碼。

proc sql;
select count(distinct ID_1)
from DATA
where ID_1 = ID_2 and ID_type in ("11","23","46");
quit;

我可以通過三個步驟做到這一點

a = [x if x==y and z in ("11","23", "46") for x,y,z in zip(DATA['x'],DATA['y'],DATA['z'])]
a = [i for i in a if str(i) != 'nan']
len(np.unique(a))

是否有任何有效的方法來編寫相同的代碼。

最常見的 SQL 操作可以在 python 和 pandas 中輕松轉換:

DATA[(DATA.ID_1 == DATA.ID_2) & (DATA.ID_type.isin(["11", "23", "46"]))].ID_1.nunique()

閱讀pandas 的介紹了解更多信息。

使用query方法進行不同的過濾:

DATA.query('ID_1 == ID_2 and ID_type.isin(["11", "23", "46"])').ID_1.nunique()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM