python 提取数据到新列,用pandas

图片说明

如图片,所示,如何提取楼栋里边的数字,到excel新列里边,分别提取到栋,单元,楼层三列里边,同时三列是通过python建立,不是手动建立的,有点复杂,求大神赐教。

图片说明

 import pandas as pd
import re

df = pd.read_excel("Q696322.xlsx", sheet_name = 0)
df['栋'] = df.apply(lambda x: re.match("\\d+(?=栋)", x["楼栋"], re.M|re.I).group(), axis=1)
df['单元'] = df.apply(lambda x: re.match("\\d+[^\\d]+(\\d+)", x["楼栋"], re.M|re.I).group(1), axis=1)
df['门牌号'] = df.apply(lambda x: re.match("\\d+[^\\d]+\\d+[^\\d]+(\\d+)", x["楼栋"], re.M|re.I).group(1), axis=1)
df.to_excel("Q696322_result.xlsx")
print(df.head)

之前还回答了几个问题,如果问题解决,麻烦一并采纳,谢谢

用的vba实现的:

 Sub main()
    iRowFirst = 2     ' 数据第一行
    iRowLast = 5      ' 数据最后一行
    iColStr = 2       ' 楼栋字符串
    iColBuild = 3     ' 栋
    iColUnit = 4      ' 单元
    iColHouse = 5     ' 门牌号

    For i = iRowFirst To iRowLast
        strstr = Sheet1.Cells(i, iColStr)
        Sheet1.Cells(i, iColBuild) = Mid(strstr, 1, 1)
        Sheet1.Cells(i, iColUnit) = Mid(strstr, 3, 1)
        Sheet1.Cells(i, iColHouse) = Mid(strstr, 6)
    Next
End Sub