【发布时间】:2020-03-15 07:48:20
【问题描述】:
我有一个列表列表,我想将其制成多索引 pandas 数据框,然后我可以将其合并到原始 pandas 数据框。列表的每一行都包含一个观察值,列表中的值由与该观察值匹配的相应行组成。
这是我所拥有的一个简单版本:
原始数据框格式如下:
original=(pd.DataFrame([['JFK','New York, NY'],['EWR','Newark, NJ'],
['BWI','Baltimore, MD'],['PHL','Philadelphia, PA'],
['DCA','Washington, DC']],columns=['ID','City']))
original
ID City
0 JFK New York, NY
1 EWR Newark, NJ
2 BWI Baltimore, MD
3 PHL Philadelphia, PA
4 DCA Washington, DC
匹配输出(将位置与一定半径内的其他位置匹配)是一个列表列表,如下所示:
matches=[[0],[1,3],[2],[1,3],[4]]
matches
[[0], [1, 3], [2], [1, 3], [4]]
这是我想要的样子:
ID City
Org Match
0 0 JFK New York, NY
1 1 EWR Newark, NJ
3 PHL Philadelphia, PA
2 2 BWI Baltimore, MD
3 1 EWR Newark, NJ
3 PHL Philadelphia, PA
4 4 DCA Washington, DC
我知道如何加入多索引级别,但不知道如何正确设置多索引。最终,这将需要大规模进行。也乐于以不同的方式接近。
根本问题是将位置与给定距离内的所有其他位置匹配。这是在一个单独的模块中完成的,输出是上面引用的列表列表。
【问题讨论】:
标签: python pandas multi-index