Как мне выполнить Pivot Wider в Pandas? (Python) - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть набор данных, df:

Action                        Date



Begin                         3/16/2020 12:35:47 PM

End                           3/16/2020 12:35:49 PM

Begin                         3/16/2020 01:35:47 PM

End                           3/16/2020 01:35:49 PM

Желаемый результат:

Begin                          End



3/16/2020 12:35:47 PM           3/16/2020 12:35:49 PM

3/16/2020 01:35:47 PM           3/16/2020 01:35:49 PM

Структура:

'  Action             Date\n0  Begin  3/16/2020 12:35\n1    
End              3/16/2020 12:35\n2  Begin  3/16/2020 13:35\n3    
End  3/16/2020 13:35'

Что я пробовал:

Я думаю, что это проблема типа перестановок, но не совсем точно.

  df2=df.pivot(columns='Action', values='Date')

Это дает странные значения NAN

  df1 = df.set_index(['Action','Date']).unstack().reset_index()

Любое предложение полезно.

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете использовать сводку и сделать bfill в конце или ffill в столбце Begin:

(df.pivot(columns='Action',values='Date')
 .assign(End = lambda x:x.End.bfill())
 .dropna()
 .rename_axis(None,axis='columns')
)


           Begin                     End
0   3/16/2020 12:35:47 PM   3/16/2020 12:35:49 PM
2   3/16/2020 01:35:47 PM   3/16/2020 01:35:49 PM
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...