Изменение формы больших панд данных в питоне - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь изменить форму данных, показанную ниже.Есть дороги с несколькими точками координации и местоположения.Я хотел бы иметь одну строку на дорогу со всеми точками данных друг за другом.Вы можете найти желаемый результат в кадре данных ниже этого.Ведение индексов не важно.

Если вы знаете, как это исправить, было бы здорово!

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 записей), поэтому, если вы знаете решение, которое может быть применено к большему кадру данных, было бы очень полезно.

1 Ответ

0 голосов
/ 20 февраля 2019

Предполагается, что 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...