заменить последующий символ, если значения ряда содержат определенный набор символов в пандах - PullRequest
0 голосов
/ 16 января 2019

У меня есть такой фрейм данных:

df:
col1      col2         col3
 1       123xy56      pyrxyz 
 3        hcv           P
 xy12      R            T
 5        453xy         Z
 2        lxy6          Q

Я хочу удалить все, начиная с xy в каждом столбце фрейма данных. если любое значение начинается с xy, замените его на ноль.

Окончательный кадр данных должен выглядеть следующим образом:

col1      col2         col3
 1        123           pyr
 3        hcv           P
 0         R            T
 5        453           Z
 2         l            Q

Ответы [ 2 ]

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

Не эффективно, но работает

df.apply(lambda x : x.str.split('xy').str[0]).replace('',0)

Out[386]: 
  col1 col2 col3
0    1  123  pyr
1    3  hcv    P
2    0    R    T
3    5  453    Z
4    2    l    Q
0 голосов
/ 16 января 2019

Вы можете использовать заменить дважды:

result = df.replace('xy.*', '', regex=True).replace('', 0)
print(result)

выход

  col1 col2 col3
0    1  123  pyr
1    3  hcv    P
2    0    R    T
3    5  453    Z
4    2    l    Q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...