我知道,我們可以使用.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]})
Thanks @MaxU。不過,我想要的是組中的唯一行的數量,如'bar'和'foo',而不是所有組的大小......任何方式來做到這一點? –
你可以在你的問題中發佈期望的輸出嗎? – MaxU
我剛添加了我想要的結果。所以我想我可以首先groupby'c1',然後對於每個組,我可以再次按所有列進行分組,並找出組的長度,這將成爲組中唯一元素的數量...問題是我不'噸如何做到這一點:-) –