熊猫groupby以逗号分隔的值

时间:2020-07-22 08:50:14

标签: pandas csv

我想计算由另一列中的逗号分隔值分组的一列的计数。

该表如下所示:

ColumnA ColumnB
A,B,C   P1
A,C     P1
A,C     P2
D       P3

输出应如下所示:

P1     A     2
       B     1
       C     2
P2     A     1
       C     1
P3     D     1

我尝试过的代码如下:

new_df = (new_df.set_index('ColumnB')['ColumnA'].str.split(',', expand=True).stack().reset_index(name='ColumnA').groupby('ColumnA'))

无法找出正确的语法。

1 个答案:

答案 0 :(得分:5)

Series with MultiIndex添加GroupBy.size

new_df = (new_df.set_index('ColumnB')['ColumnA']
                .str.split(',', expand=True)
                .stack()).reset_index(name='ColumnA')
                .groupby(['ColumnB','ColumnA'])
                .size())

print (new_df)
ColumnB  ColumnA
P1       A          2
         B          1
         C          2
P2       A          1
         C          1
P3       D          1
dtype: int64