srch_destination hotel_booked count
28 1 4
28 5 1
28 8 2
28 11 9
28 14 17
19 11 3
19 2 5
19 5 8
19 6 10
Предположим, у меня есть формат данных, отформатированный выше. Это поиски, так что предположим, что 4 человека, которые искали 28 мест для бронирования. 1. Я по сути хочу получить фреймворк данных, содержащий строку для каждого пункта назначения, а также соответствующие 3 бронирования. Так что для этого dataframe, мы имели бы две строки, которые выглядят как:Эффективная сортировка и агрегирование данных в Python?
srch_destination top_hotels
28 14 11 1
19 6 5 2
В настоящее время мой код ниже, где «c_id» является начальным dataframe и «а» желаемого результата. Я родом из R, и мне интересно, есть ли более эффективный способ сделать эту сортировку и последующую агрегацию.
import numpy as np
import pandas as pd
a = pd.DataFrame()
for ind in np.unique(c_id.srch_destination):
nlarg = c_id[c_id.srch_destination == ind].sort_values('count', ascending = False).head(3)['hotel_booked']
a = a.append({'srch_destination': ind, 'top_hotels': " ".join(map(str, nlarg))}, ignore_index=True)
a.to_csv('out.csv')
Удалено из моего ответа R ... извините .. Я пропустил этот пункт. Ошибочно, хотя вы хотели, чтобы python перенесен на R. – Gopala