2017-01-05 5 views
1

同じ操作を実行するために同等のpandasクエリに変換する必要がある以下のSQLクエリがあります。年齢= 12及び性別= "M"パンダのデータフレームのどこで個別のカウント操作を実行するには?

私はnunique()を使用してみましたが、どこ条件組み合わせる方法を知らない学生から

SELECT COUNT(DISTINCT名)。

+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

を使用すると、クエリまたはブールインデックスを使用してユニークなアイテムの数を取得できます。

df.query('age == 12 & gender == "M"')['name'].nunique() 
関連する問題