Python 3.x 取消数据框列值的分组(以逗号分隔)

Python 3.x 取消数据框列值的分组(以逗号分隔),python-3.x,pandas,Python 3.x,Pandas,您好,我有一个分组的dataframe想要解组dataframe列值以逗号分隔dataframe,如下所示 col1 col2 name exams 0,0,0 0,0,0, A1 exm1,exm2, exm3 0,1,0,20 0,0,2,20 A2 exm1,exm2, exm4, exm5 0,0,0,30 0,0,20,20 A3 exm1,exm2, exm

您好,我有一个分组的dataframe想要解组dataframe列值以逗号分隔dataframe,如下所示

 col1             col2   name  exams 

0,0,0                0,0,0,   A1   exm1,exm2, exm3
0,1,0,20           0,0,2,20   A2   exm1,exm2, exm4, exm5
0,0,0,30           0,0,20,20  A3   exm1,exm2, exm3, exm5
输出我想要的

   col1   col2  name exam
    0       0    A1   exm1
    0       0    A1   exm2
    0       0    A1   exm3
    0       0    A2   exm1
    1       0    A2   exm2
    0       2    A2   exm4
    20      20   A2   exm5
     ..............
    30      20   A3   exm5

我尝试过但无法获得正确的方法任何人请给我建议如何获得我的输出

尝试使用explode,注意,explode是pandas 0.25.0之后的新功能

df[['col1','col2','exams']]=df[['col1','col2','exams']].apply(lambda x : x.str.split(','))
df = df.join(pd.concat([df.pop(x).explode() for x in ['col1','col2','exams']],axis=1))
Out[62]: 
  name col1 col2 exams
0   A1    0    0  exm1
0   A1    0    0  exm2
0   A1    0    0  exm3
1   A2    0    0  exm1
1   A2    1    0  exm2
1   A2    0    2  exm4
1   A2   20   20  exm5
2   A3    0    0  exm1
2   A3    0    0  exm2
2   A3    0   20  exm3
2   A3   30   20  exm5

尝试使用explode,注意,explode是pandas 0.25.0之后的新功能

df[['col1','col2','exams']]=df[['col1','col2','exams']].apply(lambda x : x.str.split(','))
df = df.join(pd.concat([df.pop(x).explode() for x in ['col1','col2','exams']],axis=1))
Out[62]: 
  name col1 col2 exams
0   A1    0    0  exm1
0   A1    0    0  exm2
0   A1    0    0  exm3
1   A2    0    0  exm1
1   A2    1    0  exm2
1   A2    0    2  exm4
1   A2   20   20  exm5
2   A3    0    0  exm1
2   A3    0    0  exm2
2   A3    0   20  exm3
2   A3   30   20  exm5

拆分后多列分解…@BEN_-YO我尝试了显示名称错误:名称“分解”未定义拆分后多列分解…@BEN_-YO我尝试了显示名称错误:名称“分解”未定义