Python pandas извлечение чисел и текста в тексте в два новых столбца - PullRequest
0 голосов
/ 13 июля 2020

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

  A   
hydrogen sulfide 7783-06-4  
none
chlorine 7782-50-5

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

B
hydrogen_sulfide
none
chlorine 

C
7783-06-4
none
7782-50-5

Пробовал эти

  import pandas as pd
    df["B"] = df["A"].str.extract("(\d*\)", expand=True)
    df["C"] = df["A"].str.extract("(d+)", expand=True)
    print(df)

Оценить

1 Ответ

3 голосов
/ 13 июля 2020

Попробуйте использовать шаблон ([A-Za-z\s]+)([\d\-]+)

Пример:

df = pd.DataFrame({"A": ['hydrogen sulfide 7783-06-4', None, 'chlorine 7782-50-5']})
df[["B", "C"]] = df["A"].str.extract(r"([A-Za-z\s]+)([\d\-]+)")
print(df)

Вывод:

                            A                  B          C
0  hydrogen sulfide 7783-06-4  hydrogen sulfide   7783-06-4
1                        None                NaN        NaN
2          chlorine 7782-50-5          chlorine   7782-50-5
...