Извлечение int из строки в Pandas

скажем, у меня есть dataframe df as

A B
1 V2
3 W42
1 S03
2 T02
3 U71

Я хочу иметь новый столбец (либо в конце df или заменить колонки B С ним, поскольку это не имеет значения), который только извлекает int из столбца B. То есть я хочу колонку C выглядеть

C
2
42
3
2
71

поэтому, если перед числом есть 0, например, для 03, то я хочу вернуть 3 Не 03

как я могу это сделать?

3 ответов


вы можете преобразовать в строку и извлечь целое число с помощью регулярных выражений.

df['B'].str.extract('(\d+)').astype(int)

предполагая, что всегда есть ровно одна ведущая буква

df['B'] = df['B'].str[1:].astype(int)

Я написал небольшой цикл для этого, так как у меня не было строк в фрейме данных, а в списке. Таким образом, вы также можете добавить немного оператора if для учета поплавков:

output= ''
input = 'whatever.007'  

for letter in input :
        try :
            int(letter)
            output += letter

        except ValueError :
                pass

        if letter == '.' :
            output += letter

output = float (выход)

или вы можете int (output), если хотите.