/ / Python Pandas - Пренасяне на индекса като името / индекса на групата за произведена група от данни - python, pandas, pandas-groupby

Python Pandas - Пренасяне на индекса като името / индекса на групата за произведена група от данни - python, pandas, pandas-groupby

Използвал съм groupby в панда, но етикетаза групите е просто произволна стойност, докато бих искал този етикет да бъде индексът на оригиналния информационен кадър (който е времето), така че да мога да създам нова информационна рамка, която мога да напиша по отношение на датата.

    grouped_data = df.groupby(
["X",df.X.ne(df.X.shift()).cumsum().rename("grp")])

grouped_data2 = grouped_data["Y"].agg(np.trapz).loc[2.0:4.0]

Колоната x променя стойностите от 1-4 ивторият ред от кода е предназначен да интегрира колоната Y в групите, където X е 2 или 3. Това са повтарящи се единици, така че не искам всички 2 и 3-те да се интегрират заедно, искам период от време, когато тя отива: 22222333333 като една група и след това да приложите np.trapz отново към следващата група, където тя отива: 2222233333, По този начин трябва да имам нова информационна рамка с индекс, съответстващ на началото на тези периоди от време и стойности, които са неразделна част от тези периоди.

Отговори:

0 за отговор № 1

Ако разбирам правилно, вече сте задали индекса си на стойности DateTime? Ако отговорът е да, опитайте функцията grouper:

df.groupby(pd.Grouper(key={index name}, freq={appropriate offset alias}))

Без извадка от данни, не мога да предложа цялостно решение, но това трябва да реши проблема с индексирането ви :)

Ръководство за групови функции

Офсетни псевдоними