如图片,所示,如何提取楼栋里边的数字,到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