Как вырезать подстроку из одного столбца в кадре данных и объединить со строкой в ​​другом столбце? - PullRequest
0 голосов
/ 15 октября 2019

Итак, моя таблица выглядит следующим образом, а столбец 'final' - это то, что я пытаюсь получить:

col1   col2  final
56in   5      5in
78c>t  10    10c>t

Теперь столбец col1 может иметь любые типы значений. Я хочу извлечь в соответствии с этим условием регулярного выражения - r '[az, AZ, ">"]. Могу ли я сделать это с помощью numpy.where () и как это сделать?

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Используя re.search и pandas.DataFrame.apply , попробуйте этот код:

df['final'] = df.apply(lambda row: str(row.col2) + re.search(r'([a-zA-Z\.>]+)', row.col1).group(), axis=1)

и получите:

col1   col2  final
56in   5      5in
78c>t  10    10c>t
0 голосов
/ 15 октября 2019

Использование Series.str.extract:

df['final'] = df['col2'].astype(str) + df['col1'].str.extract(r'([a-zA-Z>]+)', expand=False)
print (df)
    col1  col2  final
0   56in     5    5in
1  78c>t    10  10c>t

При необходимости все значения без чисел:

df['final'] = df['col2'].astype(str) + df['col1'].str.extract(r'(\D+)', expand=False)
print (df)
    col1  col2  final
0   56in     5    5in
1  78c>t    10  10c>t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...