【发布时间】:2018-05-22 08:11:06
【问题描述】:
我有两个数据框:一个包含我的所有数据(称为“数据”),另一个包含每个观测开始和结束的不同站点的纬度和经度(称为“信息”),我正在尝试获取一个数据框在每个观察中,我将在每个站点旁边显示纬度和经度,我在 python 中的代码:
for i in range(0,15557580):
for j in range(0,542):
if data.year[i] == '2018' and data.station[i]==info.station[j]:
data.latitude[i] = info.latitude[j]
data.longitude[i] = info.longitude[j]
break
但由于我有大约 1500 万次观察,所以这样做需要很多时间,有没有更快的方法?
非常感谢(我还是新手)
编辑:
我的档案信息是这样的(大约500个观察,每个站一个)
我的文件数据是这样的(这里没有显示其他变量)(大约 1500 万次观察,每次旅行一个)
我希望得到的是,当站号匹配时,结果数据将如下所示:
【问题讨论】:
-
您能否从“数据”和“信息”数据帧中发布一些条目(它们出现在您的记忆中),并使用这些条目给我们一个示例,说明您希望输出的样子?正如所写,这个问题有点模糊。
-
我也没有发现自己在很多地方使用 python 或这些类型的数据框结构,所以我给出的任何解决方案都可能不像人们想要的那样提供信息。但是这个结构中的数据实际上看起来如何呢?你有什么例子吗?以及为什么每次迭代都需要遍历整个帧的任何具体原因?框架是否可以按“年份”排序并通过任何 O(log n) 搜索而不是 O(n) 搜索?有关特定案例的更多信息将有助于任何潜在的帮助者为您提供更好的答案。最好的问候
-
所以我在小范围内尝试过,我的代码实际上不起作用,我认为它确实有效,基本上我想要的是一列有纬度,然后是一列有经度然后是站号,因为我想在地图上绘制观测频率,我只是假设这是最简单的方法