Python Pandas извлечения чисел в тексте в новый столбец - PullRequest
0 голосов
/ 13 июня 2018

У меня есть следующий текст в столбце A:

A   
hellothere_3.43  
hellothere_3.9

Я хотел бы извлечь только числа в другой новый столбец B (рядом с A), например:

B                      
3.43   
3.9

Я использую: str.extract('(\d.\d\d)', expand=True), но это копирует только 3,43 (то есть точное количество цифр).Есть ли способ сделать его более общим?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Я думаю, что разделение строки и применение лямбда довольно чисто.

import pandas as pd

df = pd.DataFrame({"A": ["hellothere_3.43", "hellothere_3.9"]})
df["B"] = df['A'].str.split('_').apply(lambda x: float(x[1]))

Я не провел какого-либо правильного сравнения, но он кажется быстрее, чем регулярное выражение в небольших тестах.

0 голосов
/ 13 июня 2018

Использование Regex.

Пример:

import pandas as pd

df = pd.DataFrame({"A": ["hellothere_3.43", "hellothere_3.9"]})
df["B"] = df["A"].str.extract("(\d*\.?\d+)", expand=True)
print(df)

Выход:

                 A     B
0  hellothere_3.43  3.43
1   hellothere_3.9   3.9
...