Разделение объекта pandas

У меня есть столбец в фрейме данных, который имеет такие значения, как 45+2, 98+3, 90+5. Я хочу разделить значения так, чтобы у меня было только 45,98,90, т.е. отбросить символ + и все, что следует за ним. Проблема в том, что pandas имеет эти данные как объект, что затрудняет удаление строк, какое-либо предложение?

0
0
4 506
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте Series.str.split с выбором первых значений списков путем индексации:

df = pd.DataFrame({'col':['45+2','98+3','90+5']})

df['new'] = df['col'].str.split('+').str[0]
print (df)
    col new
0  45+2  45
1  98+3  98
2  90+5  90

Или используйте Series.str.extract для первых целых чисел из значений:

df['new'] = df['col'].str.extract('(\d+)')
print (df)
    col new
0  45+2  45
1  98+3  98
2  90+5  90

Вы можете использовать лямбда-функцию для этого.

df1 = pd.DataFrame(data=['45+2','98+3','90+5'],columns=['col'])
print df1
   col
0  45+2
1  98+3
2  90+5

Удалите ненужные части из строк в столбце «col».

df1['col'] = df1['col'].map(lambda x:x.split('+')[0])
print df1
  col
0  45
1  98
2  90

Другие вопросы по теме