我想计算由另一列中的逗号分隔值分组的一列的计数。
该表如下所示:
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'))
无法找出正确的语法。
答案 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