我有下面的SQL查詢必須轉換爲等效的熊貓查詢來執行相同的操作。從學生如何在熊貓數據框中執行where和distinct count操作?
SELECT COUNT(DISTINCT名),其中年齡= 12,性別= 「M」
我嘗試使用此外,唯一(),但不知道如何where條件結合起來。
我有下面的SQL查詢必須轉換爲等效的熊貓查詢來執行相同的操作。從學生如何在熊貓數據框中執行where和distinct count操作?
SELECT COUNT(DISTINCT名),其中年齡= 12,性別= 「M」
我嘗試使用此外,唯一(),但不知道如何where條件結合起來。
有很多不同的答案。我喜歡嘗試提供pandas
和numpy
導向的答案。我絕不暗示這些是的答案,只是我的看法。
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()
您可以使用查詢或做布爾索引,然後獲得與nunique
唯一項目的計數。
df.query('age == 12 & gender == "M"')['name'].nunique()
len(df [(df.age == 12)&(df.gender =='M')]。name.unique()) –