Как избавиться от первого элемента идентификатора магазина, используя панд? - PullRequest
0 голосов
/ 30 мая 2019

Мой фрейм данных состоит из StoreId, который необходимо изменить для определенного типа магазина:

StoreType  StoreId
 A           105
 A           213
 B           401
 B           402
 B           711
 B           910
 B           913
 B           915

В этом кадре данных, только для storeType = B, я хочу избавиться от всех 4, если storeId начинается с 4 (например, 401 должен измениться на 01, 402 должен измениться на 02), для любого другого StoreID с storetype = B такой логики нет, и, следовательно, она должна быть жестко закодирована, например, 711 должен измениться на I0, 910 на 801, 913 на 804, 915 на 814.

Как я могу написать эффективный код, используя pandas data-frame в python ??

1 Ответ

1 голос
/ 30 мая 2019

Здесь можно использовать простое регулярное выражение вместе с where только для изменения столбцов, в которых B найдено в других сериях.


u = df.StoreId.astype(str)
df.assign(StoreId=u.where(df.StoreType.ne('B'), u.str.replace('^4', '')))

  StoreType StoreId
0         A     105
1         A     213
2         B      01
3         B      02
4         B     711
5         B     910
6         B     913
7         B     915
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...