Pandas 将列拆分为多个列表,并保留删除器

Pandas 将列拆分为多个列表,并保留删除器,pandas,list,split,Pandas,List,Split,我有一个数据框,我需要在字符“Y”上拆分一列,并保留这个删除器。比如说, import pandas as pd d1 = pd.DataFrame({'user': [1,2,3],'action': ['YNY','NN','NYYN']}) 输出数据帧应该如下所示 d2 = pd.DataFrame([{'action': 'Y, NY', 'user': 1}, {'action': 'NN', 'user': 2},

我有一个数据框,我需要在字符“Y”上拆分一列,并保留这个删除器。比如说,

    import pandas as pd

    d1 = pd.DataFrame({'user': [1,2,3],'action': ['YNY','NN','NYYN']})
输出数据帧应该如下所示

    d2 = pd.DataFrame([{'action': 'Y, NY', 'user': 1},
           {'action': 'NN', 'user': 2},
          {'action': 'NY, Y, N', 'user': 3}])

    in[1]: d1
    out[1]: action  user
            YNY         1
            NN          2
            NYYN        3

    in[2]: d2
    out[2]:  action user
            Y,NY        1
            NN          2
            NY,Y, N     3
我试过几个问题,比如和。但它们并不完全是我在这里寻找的

听起来你需要

d1.action.str.split('([^Y]*Y)').map(lambda x : [z for z in x  if z!= ''])
Out[234]: 
0       [Y, NY]
1          [NN]
2    [NY, Y, N]
Name: action, dtype: object
听起来你需要

d1.action.str.split('([^Y]*Y)').map(lambda x : [z for z in x  if z!= ''])
Out[234]: 
0       [Y, NY]
1          [NN]
2    [NY, Y, N]
Name: action, dtype: object
使用-

输出

0      Y,NY
1        NN
2    NY,Y,N
使用-

输出

0      Y,NY
1        NN
2    NY,Y,N

如果最后一行是“N,Y,YN”,可以吗?如果不是,如果第一行是YN,Y,你会同意吗?如果最后一行是“N,Y,YN”,你会同意吗?如果不是,如果第一排是YN,Y,你会不会没事?