2016-05-21 15 views
1

列が['a'、 'b'、 'c']のパンダデータフレームがあるとします。それらはすべて整数型です。列 'c'の各固有値に対応する列 'b'の一意の値の数を見つけて、新しいデータフレームに格納したいと考えています。パンダを使ってどうすればいいですか?私はこのようなものを試しました:パンダ - 効率的な方法ですか?

new_df = pd.DataFrame() 
for value in df['c'].unique(): 
    x1 = df[df['c']==value] 
    x2 = x1['b'].unique().size 
    new_df.append({'A': x2, 'B': value}, ignore_index=True) 

しかし、それは時間がかかります。効率的な方法はありますか?私が正しく理解している場合

答えて

3

が、これは動作するはずです:

df.groupby("c")["b"].nunique() 
+0

おかげで、それは魔法のように動作します! – user6365735

+0

あなたは大歓迎です。 :) – ayhan

0
df.groupby('c')['b'].value_counts() 
+0

各ユニークな 'c'のためのもので、それぞれのユニークな 'b'の数を返しますが、ユニークな ' – user6365735