在Python中合并数据集:第一个数据集包含城市名称,第二个数据集包含两列不同的city_id列,以匹配起始城市和目标城市

问题描述

我需要一些帮助来理解在Python中合并2个数据集。

它们的布局如下,

  1. 首先有几列:city_id,city_name
  2. 第二个具有:origincity_id,lat,long,destinationcity_id,lat,long

我想了解如何使用python或pandas合并这两个数据集以匹配第一个数据集中的city_name来创建两列以匹配原始城市ID和目标城市ID?

谢谢。

解决方法

使用 map

用于将系列中的每个值替换为另一个值,即 可能来自函数,字典或系列。

在这里,我们从城市查询数据框中提供了另一个系列。

>>> import pandas as pd
>>> lookup_df = pd.DataFrame([{"id":1,"city":"NY"},{"id":2,"city":"TX"}])
>>> 
>>> lookup_df
  city  id
0   NY   1
1   TX   2
>>> data_df = pd.DataFrame([{"id1":2,"id2":1},{"id1":1,"id2":2}])
>>> data_df
   id1  id2
0    2    1
1    1    2
>>> data_df["id1_city"] = data_df["id1"].map(lookup_df.set_index("id")["city"])
>>> data_df["id2_city"] = data_df["id2"].map(lookup_df.set_index("id")["city"])
>>> 
>>> data_df
   id1  id2 id1_city id2_city
0    2    1       TX       NY
1    1    2       NY       TX

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...