Столбец Dataframe: если ячейка содержит строку, возвращает диапазон цифр, начиная с индекса, где была найдена строка - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть датафрейм, в котором я собираюсь извлечь 12 цифр, начиная с "W" в столбце "test" "W" может иметь разные индексы по всему столбцу.

Вот что мои данные выглядят так:

          Text                                                     Result(I'd like to see)
1         SP/00016 - return of scrap from WH/MO/00003 - internal   WH/MO/00003
2         SP/28 - return of scrap from WH/MO/00074 - internal      WH/MO/00074
3         return of scrap from WH/MO/00074 - internal              WH/MO/00074
4         WH/MO/00074 - internal                                   WH/MO/00074
5         SP/00026 - return of scrap from WH/MO/00074 - internal   WH/MO/00074

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

start1 = df1['Text'].str.index('W')
start2 = start1.astype(int)
df1['Result'] = df1['Text'].astype(str).str[start2:]

1 Ответ

1 голос
/ 23 апреля 2020

IIU C Вы хотите str.extract

df.Text.str.extract(r'(\w\w\/\w\w\/\d{5})')
             0
0  WH/MO/00003
1  WH/MO/00074
2  WH/MO/00074
3  WH/MO/00074
4  WH/MO/00074

Вы также можете назначить его новому столбцу в кадре данных.

df['Result'] = df.Text.str.extract(r'(\w\w\/\w\w\/\d{5})')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...