gpt4 book ai didi

python - 如何用模式拆分 2 列?

转载 作者:行者123 更新时间:2023-12-04 02:28:42 25 4
gpt4 key购买 nike

我有一个包含 2 列任意长度的数据集 (df),我需要根据值将其拆分。

<表类="s-表"><头>公交车代码<正文>150 H.S.London-lon3 11£150 H.S.London-lon3 16£150 H.S.London-lon3 120GERI400 卢顿机场-ptr5 12£400 卢顿机场-ptr5 15£400 卢顿机场-ptr5 1724£JTR005 Plaza-cata-md6 08£005 Plaza-cata-md6 012£005 Plaza-cata-md6 1878 英镑 TDE

我一直在尝试将其拆分为如下所示:

<表类="s-表"><头>公交车方向区域时间代码名称<正文>150HS伦敦lon311NaNGERI400卢顿机场ptr51224JTR005广场广场md60878时间延迟

到目前为止,我尝试按模式拆分,但没有用,我不知道如何以其他方式拆分它。

bus = '(?P<bus>[\d]+) (?P<direction>[\w\W]+)-(?P<zone>[\w]+)'
code = '(?P<code>[\S]+)£(?P<name>\d+)
df.BUS.str.extract(bus)).join(df.CODE.str.extract(code)

我想知道是否有人对此有好的解决方案。

最佳答案

您可以使用 .str.extract使用包含命名捕获组的 regex 模式:

code = r'^(?P<code>\d+)?.*?(?P<name>[A-Za-z]+)'
bus = r'^(?P<bus>\d+)\s(?P<directions>.*?)-(?P<zone>[^\-]+)\s(?P<time>\d+)'

df['BUS'].str.extract(bus).join(df['CODE'].str.extract(code))

   bus     directions  zone time code  name
0 150 H.S.London lon3 11 NaN GERI
1 400 Airport Luton ptr5 12 24 JTR
2 005 Plaza-cata md6 08 78 TDE

查看 code 模式的正则表达式演示 here对于 bus 模式 here .

关于python - 如何用模式拆分 2 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65599404/

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