#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
В настоящее время у меня есть фрейм данных, который выглядит следующим образом
DATE ID CHANGE
05-05-2020 333333 10
05-05-2020 333334 2
05-05-2020 333335 8
05-06-2020 333333 -2
05-06-2020 333334 4
05-06-2020 333335 5
и я хочу иметь возможность конвертировать этот фрейм данных по горизонтали по дате и разделять идентификатором либо
DATE ID CHANGE ID CHANGE ID CHANGE
05-05-2020 333333 10 333334 2 333335 8
05-06-2020 333333 -2 333334 4 333335 5
или
DATE 333333_CHANGE 333334_CHANGE 333335_CHANGE
05-05-2020 10 2 8
05-06-2020 -2 4 5
Я предполагаю, что вам нужно сделать какой-то df.groupby()
or pd.concat()
, хотя чтение документации для них также приводит меня в замешательство.
Ответ №1:
Если возможно, вывод # 2 лучше, потому что повторяющиеся имена столбцов могут привести к множеству различных проблем в выводе # 1.
Для вывода # 2 используйте .unstack()
, а затем выполните некоторую очистку столбцов с несколькими индексами для лучшего формата:
df = df.set_index(['DATE', 'ID']).unstack(1).add_suffix('_CHANGE')
df.columns = df.columns.droplevel()
df = df.reset_index()
df
Out[1]:
ID DATE 333333_CHANGE 333334_CHANGE 333335_CHANGE
0 05-05-2020 10 2 8
1 05-06-2020 -2 4 5