给出此数据框:
df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
我可以使用groupby来显示组合组的大小:
df.groupby(['A','B']).size()
A B
1 2 1
3 1
4 6 1
如何将B的唯一值组合到列表中,并同时显示A的大小?
A B
1 2,3 2
4 6 1
答案 0 :(得分:2)
使用:
df['B'].astype(str).groupby(df['A']).agg([','.join,'size'])
Out[134]:
join size
A
1 2,3 2
4 6 1
答案 1 :(得分:1)
仅对A进行分组,并使用.agg
指定用于每一列的字典。
df.groupby('A').agg({'B': list, 'A': 'size'}).rename(columns={'A': 'Size'})
B Size
A
1 [2, 3] 2
4 [6] 1