Разделите информационный кадр на меньшие информационные кадры на основе столбца Python - PullRequest
0 голосов
/ 24 апреля 2018

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

raw data

И я хочу, чтобы он выглядел так:

weekly output

Я знаю, что мне нужно сделать следующее:

df= df.groupby('city_id').resample('W').agg({'Quantity':'sum'}, loffset = pd.offsets.timedelta(days=-8))

, чтобы получить агрегацию за неделю, но мне нужно, чтобы она была сгруппирована по идентификатору города, а затем агрегирована по неделям.

Я подумал, что мне нужно создать несколько фреймов данных, каждый по идентификатору города, агрегировать их по дате, чтобы получать выходные данные, а затем объединять их обратно, но я чувствую, что есть лучший способ сделать это.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Это решило мою проблему

output = df.groupby('city_id').resample('W').agg({'Quantity':'sum'}, loffset = pd.offsets.timedelta(days=-8))

0 голосов
/ 24 апреля 2018

Попробуйте:

df.groupby(['index', 'city_id'], as_index=False).sum()

Это сгруппирует первые 2 столбца и суммирует оставшиеся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...