Присвоение значений новому столбцу в Pandas - PullRequest
2 голосов
/ 06 февраля 2020

Здравствуйте. У меня есть такой фрейм данных, как показано ниже:

Col1
ABC
ABCD
XYZ Ju21

Я хочу присвоить значение новому столбцу в этом фрейме данных:

  • Если Col1 не содержит пробела, то скопировать Col1 (значение строки) в Col2
  • Если Коул содержит пробел, то извлеките строку перед первым пробелом и присвойте ей Col2

Можно ли это сделать с помощью регулярных выражений или любой функции pandas? Любая помощь будет высоко ценится.

1 Ответ

2 голосов
/ 06 февраля 2020

Это решение, объединяющее str.contains, str.split и lambda в np.where:

import pandas as pd
import numpy as np
df1 = pd.DataFrame({'index':[1,2,3],'Col1':['ABC','ABCD','XYZ Ju21']})

df1['Col2'] = np.where(df1['Col1'].str.contains(' '),df1['Col1'].str.split(' ').apply(lambda x: x[0]),df1['Col1'])
print(df1)

Выход:

   index      Col1  Col2
0      1       ABC   ABC
1      2      ABCD  ABCD
2      3  XYZ Ju21   XYZ
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...