我正在尝试重塑如下所示的数据框。有些道路具有多个协调和位置点。我希望每条道路上只有一行,并且所有数据点都紧挨着。您可以在此下方的数据框中找到所需的输出。保持索引并不重要。
如果您知道如何解决此问题,那就太好了!
index road lrp lat lon
1346 N1 LRP467 20.862972 92.298083
1347 N1 LRPE 20.862917 92.298083
1348 N101 LRPS 23.454139 91.212861
1349 N101 LRPSa 23.461889 91.212000
所需的输出:
index road lrp1 lat1 lon1 lrp2 lat2 lon2
1346 N1 LRP467 20.862972 92.298083 LRPE 20.862917 92.298083
1348 N101 LRPS 23.454139 91.212861 LRPSa 23.461889 91.212000
我的实际数据框比此示例大得多(超过10000条记录),因此,如果您知道可以应用于较大数据框的解决方案,将非常有帮助。
答案 0 :(得分:3)
假设index
是索引而不是列:
m= df.groupby(['road']).cumcount() + 1
df = df.set_index(['road', m]).unstack().sort_index(1, level=1)
df.columns = ['_'.join(map(str,i)) for i in df.columns]
print(df.reset_index())
road lat_1 lon_1 lrp_1 lat_2 lon_2 lrp_2
0 N1 20.862972 92.298083 LRP467 20.862917 92.298083 LRPE
1 N101 23.454139 91.212861 LRPS 23.461889 91.212000 LRPSa