使用Pandas列出第二列的所有值和第一列的计数

时间:2018-10-23 18:09:50

标签: python pandas pandas-groupby

给出此数据框:

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

2 个答案:

答案 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