gpt4 book ai didi

python - 按数字或字母符号拆分多列

转载 作者:行者123 更新时间:2023-12-01 00:02:56 25 4
gpt4 key购买 nike

我正在努力按列 v1v3 的数字或字母符号拆分多列,然后将第一部分作为该列的值。例如,红岗花园12栋110房将被12拆分,然后取红岗花园德福花园德福豪苑C4栋C5栋C4座1403房将被C4分割并占用德福花园德福豪苑

    id       v1                      v2                     v3
0 1 泥岗路 红岗花园12栋110房 NaN
1 2 沙井街道 万丰路 东侧
2 3 中心区 N15区 幸福·海岸10栋A座11A
3 4 龙岗镇 南联村 长海雅园2栋D301D302房产
4 5 蛇口工业区 兴华路 海滨花园多层海滨花园兰山楼06栋504房产
5 6 宝安路 松园·南九巷综合楼10栋103 NaN
6 7 宝安路 松园·南九巷综合楼10栋203 NaN
7 8 龙岗镇 中心城 尚景华园12栋307房
8 9 沙河西路 西博海名苑1栋30C房产 NaN
9 10 华侨城香山中路 天鹅堡三期P栋4D房 NaN
10 11 布吉镇 德福花园德福豪苑C4栋C5栋C4座1403房 NaN

我尝试过的代码:

cols = ['v1', 'v2', 'v3']
df[cols] = df[cols].apply(lambda x: ''.join(re.compile(r'(\d+|\w+)')[0], x.str))

输出:

TypeError: ("'_sre.SRE_Pattern' object is not subscriptable", 'occurred at index v1')

我想要的输出将是这样的:

    id       v1         v2             v3
0 1 泥岗路 红岗花园 NaN
1 2 沙井街道 万丰路 东侧
2 3 中心区 NaN 幸福·海岸
3 4 龙岗镇 南联村 长海雅园
4 5 蛇口工业区 兴华路 海滨花园多层海滨花园兰山楼
5 6 宝安路 松园·南九巷综合楼 NaN
6 7 宝安路 松园·南九巷综合楼 NaN
7 8 龙岗镇 中心城 尚景华园
8 9 沙河西路 西博海名苑 NaN
9 10 华侨城香山中路 天鹅堡三期 NaN
10 11 布吉镇 德福花园德福豪苑 NaN

感谢您的帮助。

最佳答案

您可以删除需要修改的列中第一个 ASCII 字母数字字符之后的所有文本:

cols = ['v1', 'v2', 'v3']
df[cols] = df[cols].apply(lambda x: x.str.replace(r'[A-Za-z0-9].*', ''))

如果您的列可以包含多行文本,请使用

r'(?s)[A-Za-z0-9].*'

其中 (?s) 内联修饰符也会让 . 匹配换行符。

关于python - 按数字或字母符号拆分多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60203245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com