は、私たちは以下のように列の要素の固有の番号を見つけるためにGROUPBYカラム().nunique使用できることを知っている:パンダのgroupbyオブジェクト内のユニークな行の数を調べる方法は?
df = pd.DataFrame({'c1':['foo', 'bar', 'foo', 'foo'], 'c2': ['A', 'B', 'A', 'B'], 'c3':[1, 2, 1, 1]})
c1 c2 c3
0 foo A 1
1 bar B 2
2 foo A 1
3 foo B 1
df.groupby('c1')['c2'].nunique()
c1
bar 1
foo 2
Name: c2, dtype: int64
は、しかし、今、私は複数の列が含まれているGROUPBYオブジェクトを持っています、ユニークな行の数を調べる方法はありますか?
df.groupby('c1')['c2', 'c3'].???
更新: だから私が望む最終的な結果は、このような「C1」の列に基づいてグループ化しています、各グループ内で一意の行の数です:
foo 2
bar 1
更新2: 新しいテストデータフレームは次のとおりです。
df = pd.DataFrame({'c1': ['foo', 'bar', 'foo', 'foo', 'bar'], 'c2': ['A'
, 'B', 'A', 'B', 'A'], 'c3': [1, 2, 1, 1, 1]})
ありがとう@MaxU。しかし、私が望むのは、すべてのグループのサイズではなく、 'bar'や 'foo'などのグループ内のユニークな行の数です。これを行う方法は何ですか? –
質問に希望の出力を投稿できますか? – MaxU
私はちょうど私が望む結果を追加しました。だから私は最初にgroupby 'c1'をすることができると思うし、各グループのために、再びすべての列でグループ化し、グループの長さを見つけることができます...問題は、これを行う方法:-) –