У меня есть набор данных, 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()

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

0
Lynn 16 Апр 2020 в 00:12

1 ответ

Лучший ответ

Вы можете использовать сводку и выполнить bfill в конце или заливкой в столбце "Начало":

(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
1
sammywemmy 15 Апр 2020 в 22:05