разбить столбец на несколько списков и сохранить разделитель - PullRequest
0 голосов
/ 04 января 2019

У меня есть фрейм данных, который мне нужен, чтобы разделить столбец на символ "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

Я пробовал несколько вопросов, таких как Python split () без удаления разделителя и Python split по регулярному выражению без удаления разделителей . Но они не совсем то, что я ищу здесь.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Использование -

d1['action'].str.split('Y').str.join('Y,').str.rstrip(',')

выход

0      Y,NY
1        NN
2    NY,Y,N
0 голосов
/ 04 января 2019

Звучит так, как тебе нужно

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...