Найдите строку в столбце и укажите строку, добавив еще один столбец в фрейм данных в pandas. - PullRequest
0 голосов
/ 29 ноября 2018

В моих данных у меня есть несколько столбцов.В одном из этих столбцов я хочу найти три разных строки.После нахождения этих строк мне нужно упомянуть строки, которые я основал для строк, добавив в данные еще один столбец и присвоив ему имя, которое мы определили.

мои данные похожи на этот столбец в моих данных, которые яхочу сделать работу

Campaign      
  Polestar - Remarketing - DN - BGLR
  Promenade - Remarketing - BLR
  Polestar -
  Polestar -BLR
  Urbana-Display-GSP-UK-July

и вывод должен быть похож на

            Campaign                           REM
  Polestar - Remarketing - DN - BGLR        Remarkt
  Promenade - Remarketing - BLR             Remarkt
  Polestar -                                   -
  Polestar -BLR                                -
  Urbana-Display-GSP-UK-July                Mail

Я хочу найти строку REM, Remarketing, GSP в таблице кампании и упомянуть в новых столбцахс именем REM и нитифицировать эти строки, имеющие эту строку

REM, Ремаркетинг должен упомянуть Remarket GSP хочу упомянуть Mail

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Использование np.select () Немного быстрее, чем в приведенном выше решении.

c1 = df.Campaign.str.contains("Remarketing|REM")
c2 = df.Campaign.str.contains("GSP")
df['REM'] = np.select([c1, c2], ['Remarket', 'Mail'],'-')
#1.07 ms ± 75.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
print(df)

Вывод:

                             Campaign       REM
0  Polestar - Remarketing - DN - BGLR  Remarket
1       Promenade - Remarketing - BLR  Remarket
2                          Polestar -         -
3                       Polestar -BLR         -
4          Urbana-Display-GSP-UK-July      Mail
0 голосов
/ 29 ноября 2018

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

df = pd.DataFrame({'Campaign':['Polestar - Remarketing - DN - BGLR',
                               'Promenade - Remarketing - BLR',
                              'Polestar -',
                              'Polestar -BLR',
                              'Urbana-Display-GSP-UK-July']})

df['REM'] = '-'
df.iloc[df[df.Campaign.str.contains('Remarketing|REM')].index,1] = 'Remarket'
df.iloc[df[df.Campaign.str.contains('GSP')].index,1] = 'Mail'

df

#     Campaign                            REM
# 0 Polestar - Remarketing - DN - BGLR    Remarket
# 1 Promenade - Remarketing - BLR         Remarket
# 2 Polestar -                            -
# 3 Polestar -BLR                         -
# 4 Urbana-Display-GSP-UK-July            Mail
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...