我有 2 个不同的数据框。一个看起来像这样
arriv depart stop_id
12:35 12:40 a2b
23:00 01:00 a1e
Run Code Online (Sandbox Code Playgroud)
其他的看起来像这样:
stop_id lon lat name
a1e 12.1 13.2 Old Church
a2b 12.2 13.1 Postal Service
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个看起来像这样的数据框,其中包含数据的子集:
arriv depart stop_id lon lat name
12:35 12:40 a2b 12.2 13.1 Postal Service
23:00 01:00 a1e 12.1 13.2 Old Church
Run Code Online (Sandbox Code Playgroud)
基本上合并了两个数据帧,但有大量的停靠点列表的双重条目。这样做的好方法是什么?
我相信您想要的是:“对于第一个数据框中的每个实例,合并 lon lat 和 name 列(在另一个数据框中可用)。”
如果是这种情况,您可以使用 pd.merge():
import pandas as pd
timeDF = pd.DataFrame({
"arriv":["12:35","23:00","13:35","12:35"],
"depart":["12:40","01:00","14:25","14:35"],
"stop_id":["a2b","a1e","a2b","a1e"]
})
stopDF = pd.DataFrame({
"long":["12.1","13.1"],
"lat":["13.0","14.3"],
"name":["nameA","nameB"],
"stop_id":["a2b","a1e"]
})
print(pd.merge(timeDF,stopDF,how='left',on='stop_id'))
Run Code Online (Sandbox Code Playgroud)
输入:
arrive_departure_dataframe:
arriv depart stop_id
0 12:35 12:40 a2b
1 23:00 01:00 a1e
2 13:35 14:25 a2b
3 12:35 14:35 a1e
stops_information_dataframe:
long lat name stop_id
0 12.1 13.0 nameA a2b
1 13.1 14.3 nameB a1e
Run Code Online (Sandbox Code Playgroud)
输出:
arriv depart stop_id long lat name
0 12:35 12:40 a2b 12.1 13.0 nameA
1 23:00 01:00 a1e 13.1 14.3 nameB
2 13:35 14:25 a2b 12.1 13.0 nameA
3 12:35 14:35 a1e 13.1 14.3 nameB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |