Как преобразовать строки в столбцы с помощью groupby в pandas? - PullRequest
1 голос
/ 02 августа 2020

У меня есть фрейм данных, который выглядит так

   SHIP_ID        LON            LAT        LABEL_ETA     VESSEL_TYPE       TIMESTAMP_UTC_MONTH
0   23445      233.226313      0.363567      21858.0     CONTAINER SHIP            APR
1   32323      100.200100     -0.457523      21857.0     CONTAINER SHIP            JAN
2   55421      191.223145     -0.398676      21855.0     CONTAINER SHIP            FEB
3   45672      112.234589      0.438764      21852.0     CONTAINER SHIP            DEC

Однако я хочу сделать это таким образом

   SHIP_ID       VESSEL_TYPE        JAN       FEB      MAR     APR .....    DEC
0   23445      CONTAINER SHIP      102.22    102.22    ...        
1   32323      CONTAINER SHIP      102.22    102.22    ...  
2   55421      CONTAINER SHIP      102.22    ..        ...
3   45672      CONTAINER SHIP      102.22    ..        ...

Мне нужны данные TIMESTAMP_UTC_MONTH в качестве столбца, который являются месяцами и содержат среднее значение LABEL_ETA каждого месяца.

LON И LAT также должны быть исключены. Я пробовал такие методы, как pivot_table (), и это сработало! Но в требовании сказано, что я могу сделать это только с помощью метода groupby ().

Ответы [ 2 ]

1 голос
/ 02 августа 2020
df.groupby(['SHIP_ID', 'VESEEL_TYPE', 'TIMESTAMP_UTC_MONTH']).LABEL_ETA.mean().unstack().reset_index()

Подробнее о группировке в pandas 'руководстве пользователя

0 голосов
/ 02 августа 2020

Если вы хотите иметь только «среднее значение LABEL_ETA за каждый месяц», вы можете просто использовать:

df.groupby('TIMESTAMP_UTC_MONTH').LABEL_ETA.mean()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...