Превратить событие N строк кадра данных в столбец, агрегированный по дате в панд?

#python #pandas

Вопрос:

У меня есть фрейм данных, подобный этому

Название отметка времени
Строка первая 2016-12-02
Строка вторая 2016-12-02
Строка двадцать пятая 2016-12-02
Строка двадцать шестая 2016-12-03
Строка двадцать седьмая 2016-12-03
Строка пятьдесят 2016-12-03

И я хочу превратить его в такой фрейм данных, как этот

отметка времени 1-е место топ-2 топ-25
2016-12-02 Строка первая Строка вторая Строка двадцать пятая
2016-12-03 Строка двадцать шестая Строка двадцать седьмая Строка пятьдесят

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

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

Ответ №1:

Вот идея, где столбец A-ваши даты, а столбец D-ваши строки

 df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
                         "bar", "bar", "bar", "bar"],
                   "D": ["1", "this text", "text other", "What", "migrate", "Data", "5", "6 saucisses", "Okayy"]
                   })
# Join with a character very specific, that you won't find in your rows
# Something like '#######'
df = df.pivot_table(values='D', index=['A'], aggfunc=lambda x: '#'.join(x))

df_test = df.D.str.split(pat='#',expand=True,)