问题描述
我需要一些帮助来理解在Python中合并2个数据集。
它们的布局如下,
- 首先有几列:city_id,city_name
- 第二个具有: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