gpt4 book ai didi

Python:str.split 字符串返回 'Columns must be same length as key',尽管 expand=True 并且字符串中的正则表达式没有多个匹配项

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:46 27 4
gpt4 key购买 nike

我已经研究了一段时间了,但对我来说意义不大

我有一些以下列形式出现的坐标数据:

"4.970599399999999, 'lng': -1.6918635"

第一部分是纬度,第二部分是经度。

这是专栏:

 coordinates
4.970599399999999, 'lng': -1.6918635
None
4.5, 'lng': -1.69
4.9705, 'lng': -1.6
None

我使用的代码是:

data[['latitude','longitude']] = data['coordinates'].str.split('\,\s\'lng\'\w*\:\s',expand=True)

我已经使用 Regexr 确认我的正则表达式完全没问题并且在正确的定界符上拆分并且那里没有问题

但是我得到的错误是这样的:

“ValueError:列的长度必须与键的长度相同”

我以前遇到过这个错误,我发现这是由于字符串中有多个匹配项 - 但这些字符串很短而且很简单!它要么是“无”,要么是坐标

有人可以帮忙吗?

非常感谢

最佳答案

您的方法适用于 pandas v0.22。但是,我会在这里使用更惯用的 str.extract:

p = r'(?P<latitude>-?\d+\.\d+).*?(?P<longitude>-?\d+\.\d+)'
df[['latitude', 'longitude']] = df['coordinates'].str.extract(p, expand=True)

df
coordinates latitude longitude
0 4.970599399999999, 'lng': -1.6918635 4.970599399999999 -1.6918635
1 None NaN NaN
2 4.5, 'lng': -1.69 4.5 -1.69
3 4.9705, 'lng': -1.6 4.9705 -1.6
4 None NaN NaN

使用 str.extract,您可以指定命名的捕获组。

关于Python:str.split 字符串返回 'Columns must be same length as key',尽管 expand=True 并且字符串中的正则表达式没有多个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245954/

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