python 提取数据到新列,用pandas

图片说明

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

3个回答

图片说明

 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)

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

darklinboxs
darklinboxs 好吧,如果是这几列写到另外一个新的表改怎么做呢?
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复darklinboxs: 新增加列直接df['列名']
一年多之前 回复
darklinboxs
darklinboxs 大佬,你的列是怎么定位的比如我要填过几列写入,栋,单元,门牌号这几列。
一年多之前 回复

用的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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!