gpt4 book ai didi

python - 使用 dataframe.loc 将信息从一个数据帧调用到另一个数据帧的更有效方法

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:41 25 4
gpt4 key购买 nike

我想知道您是否可以提出一种更有效的方法?

我有两个数据框如下:1) 一个包含各种“站”位置的数据框:

   StationNames   Lat          Long
0 St1 1.30405 103.77350
1 H2 1.30414 103.77355
2 H11 1.30446 103.77375

2) 带有我在不同站点时的时间戳的数据框:

               Description        Session       Survey
Local
2018-10-06 09:48:30 St1 Oct06_Morning Survey
2018-10-06 09:56:30 St1 Oct06_Morning Survey
2018-10-06 09:58:30 H2 Oct06_Morning NoSurvey

现在我想在第二个中添加一列,它根据站名(描述)获取地址(纬度、经度)。我做了一个循环,但听起来效率很低。有什么建议么?谢谢,尼金

TimeStamps['Lat']=0.00
TimeStamps['Lng']=0.00
for i in range(TimeStamps.shape[0]):
ALong=StationAddress.loc[StationAddress.StationNames==TimeStamps.Description[i],'Long']
Blat=StationAddress.loc[StationAddress.StationNames==TimeStamps.Description[i],'Lat']
#print i, ALong, Blat
TimeStamps['Lng'][i]=ALong
TimeStamps['Lat'][i]=Blat

最佳答案

您可以使用 merge()功能。

所以如果你的框架是:

StationAddress = pd.DataFrame(data=[['St1',1.30405, 103.77350], ['H2',1.30414, 103.77355],['H11',1.30446, 103.77355]], 
columns=['StationNames', 'Lat','Long'])

TimeStamps = pd.DataFrame(data=[['2018-10-0609:48:30','St1','Oct06_Morning', 'Survey'], ['2018-10-06 09:56:30','St1','Oct06_Morning', 'Survey'],['2018-10-06 09:58:30','H2','Oct06_Morning', 'NoSurvey']],
columns=['local','Description', 'Session','Survey'])

试试这个:

TimeStamps.merge(StationAddress, 
left_on='Description', right_on='StationNames',
how='left', left_index=True).set_index('local')

关于python - 使用 dataframe.loc 将信息从一个数据帧调用到另一个数据帧的更有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55485724/

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