合并 Python 中的数据集:第一个数据集包含城市名称,第二个数据集包含 city_id 的两个不同列,用于匹配始发城市和目的地城市

Merging datasets in Python: 1st data set with city name and 2nd with two different columns for city_id for origin and destination cities to match with

我需要一些帮助来理解如何将 2 个数据集合并为一个 Python。

他们的布局如下,

  1. 首先有列:city_id、city_name
  2. 第二个有:起点city_id,纬度,经度,目的地city_id,纬度,经度

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

谢谢。

使用map.

Used for substituting each value in a Series with another value, that may be derived from a function, a dict or a Series.

这里我们提供了我们城市查找数据框中的另一个系列。

>>> 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