在一个文本字段中,我有以下输入系列,其中包含地理坐标元组作为字符串:
import pandas as pd
coords = pd.Series([
'(29.65271977700047, -82.33086252299967)',
'(29.652914019000434, -82.42682220199964)',
'(29.65301114200048, -82.36455186899968)',
'(29.642610841000476, -82.29853169599966)',
])
我想解析这些元组中的数字,最后得到以下结果数据帧:
^{pr2}$这就是我想到的:
str_coords = coords.str[1:-1].str.split(', ')
latlon = str_coords.apply(pd.Series).astype(float)
latlon.columns = ['lat', 'lon']
我的问题:对.apply(pd.Series)
的调用在真正的列表中使用“forever”,它有大约120万个条目。有没有更快的方法?在
访问列表的第一个和第二个元素的另一种方法也是通过
str
:一些计时表明,我的解决方案和@ajcr的解决方案都比apply快得多(pd系列)方法(两者之间的差异可以忽略不计):
^{pr2}$另一种方法是使用矢量化字符串方法^{} :
您可以将命名的regex捕获组传递给
extract
-它将创建一个以组名作为列名的数据帧。在然后可以将此数据帧
^{pr2}$df
转换为float
数据类型:相关问题 更多 >
编程相关推荐