Я использую следующий код:
import pandas as pd
import numpy as np
month = [1, 1, 1, 1, 1, 2, 2, 2]
b = [1, 2, 3, 4, 1, 2, 3, 4]
c = [1, 0, 0, 1, 2, 3, 3, 0]
itemIDs = [5,1,1,4,5,2,2,2]
df = pd.DataFrame(data=month)
df.columns = ["month"]
df["partition"] = b
df["value"] = c
df["id"] = itemIDs
print(df)
print("")
# df=df.pivot(index="month",columns="partition",values="value")
df= df.groupby(["id","month","partition"]).agg(value=pd.NamedAgg(column="value",aggfunc="sum")).unstack("partition",fill_value=0)
df.reset_index(inplace=True,level=0)
df.columns= df.columns.droplevel()
df.to_csv("test.csv",index=False)
print(df)
Моя цель - суммировать все значения для каждого идентификатора за каждый месяц для каждого раздела и транспонировать разделы в каждой группе (идентификатор, месяц).
Приведенный выше код представляет собой комбинацию всех подсказок, которые я смог найти в Stackoverflow, но теперь моя проблема в том, что индекс не вычисляется должным образом. Я ожидал бы следующего индекса:
id, month, 1,2,3,4
, где числа 1-4 являются результатом операции транспонирования / разложения.
Фактический результат (без капли): введите описание изображения здесь
Кто-нибудь знает, как это исправить? Я знаю, что есть много многоиндексных вопросов, но все те, которые я изучал, у меня не работали (возможно, я использовал их неправильно, но я в отчаянии).