以逗号分隔值的熊猫分组

soo*_*osa 2 csv pandas

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

该表如下所示:

ColumnA ColumnB
A,B,C   P1
A,C     P1
A,C     P2
D       P3
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

P1     A     2
       B     1
       C     2
P2     A     1
       C     1
P3     D     1
Run Code Online (Sandbox Code Playgroud)

我试过的代码是这样的:

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

无法找出正确的语法。

jez*_*ael 5

添加GroupBy.sizeSeries with MultiIndex

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
Run Code Online (Sandbox Code Playgroud)