gpt4 book ai didi

python - 慢循环python在python中的另一个数据框中搜索数据

转载 作者:行者123 更新时间:2023-11-28 17:06:46 25 4
gpt4 key购买 nike

我有两个数据框:一个包含我的所有数据(称为“数据”),另一个包含每次观察开始和结束的不同站点的纬度和经度(称为“信息”),我正在尝试获取一个数据框在每次观察中,我将在每个站点旁边显示纬度和经度,我的 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 个观测值,每个站一个)

enter image description here

我的文件数据是这样的(这里没有显示其他变量)(大约 1500 万次观察,每次旅行一个)

enter image description here

我想要得到的是,当站号匹配时,结果数据将如下所示:

enter image description here

最佳答案

这是一个解决方案。您还可以使用 pandas.merge 将 2 个新列添加到 data 并执行等效映射。

# create series mappings from info
s_lat = info.set_index('station')['latitude']
s_lon = info.set_index('station')['latitude']

# calculate Boolean mask on year
mask = data['year'] == '2018'

# apply mappings, if no map found use fillna to retrieve original data
data.loc[mask, 'latitude'] = data.loc[mask, 'station'].map(s_lat)\
.fillna(data.loc[mask, 'latitude'])

data.loc[mask, 'longitude'] = data.loc[mask, 'station'].map(s_lon)\
.fillna(data.loc[mask, 'longitude'])

关于python - 慢循环python在python中的另一个数据框中搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50457554/

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