Python pandas 将文本中的数字和文本提取到两个新列

Python pandas extracting numbers and text within text to two new column

我在 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)

欣赏

尝试使用模式 ([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