2017-01-05 23 views
1

我有下面的SQL查詢必須轉換爲等效的熊貓查詢來執行相同的操作。從學生如何在熊貓數據框中執行where和distinct count操作?

SELECT COUNT(DISTINCT名),其中年齡= 12,性別= 「M」

我嘗試使用此外,唯一(),但不知道如何where條件結合起來。

+1

len(df [(df.age == 12)&(df.gender =='M')]。name.unique()) –

回答

0

有很多不同的答案。我喜歡嘗試提供pandasnumpy導向的答案。我絕不暗示這些是的答案,只是我的看法。

numpy
我的解決辦法。不規範!

a = df.age.values == 12 
g = df.gender.values == 'M' 
len(np.unique(df.name.values[a & g])) 

pandas
我的解決辦法。不規範!

a = df.age.eq(12) 
g = df.gender.eq('M') 
df.name.loc[a & g].nunique() 
2

您可以使用查詢或做布爾索引,然後獲得與nunique唯一項目的計數。

df.query('age == 12 & gender == "M"')['name'].nunique()