假設我有一個這樣的資料框:
import pandas as pd
df = pd.DataFrame([
('a', 'aa'),
('b', 'aa'),
('c', 'bb'),
('d', 'bb'),
('e', 'cc'),
('f', 'cc'),
('h', 'cc')
], columns=['group', 'id'])
我做了一個 groupby 來顯示唯一值的數量以及唯一值本身。這是我現在正在做的事情:
df1 = df.groupby(["id"])["group"].nunique()
print(df1)
id
aa 2
bb 2
cc 3
df2 = df.groupby(['id'])['group'].agg(['unique'])
print(df2)
id
aa [a, b]
bb [c, d]
cc [e, f, h]
但是,我試圖將這兩個顯示在一起(一列顯示計數,一列顯示如下所示的值。有什么辦法可以做到?
id count values
aa 2 [a, b]
bb 2 [c, d]
cc 3 [e, f, h]
uj5u.com熱心網友回復:
res = df.groupby('id')['group'].agg(count='nunique', values='unique')
輸出
>>> res
count values
id
aa 2 [a, b]
bb 2 [c, d]
cc 3 [e, f, h]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/358441.html
上一篇:根據出現次數按列分組
下一篇:計算缺失列id的串列
