Предположительно, у меня есть фрейм данных, который в настоящее время содержит такие данные:
T week
0 T-1
1 T-1
2 T-1
3 T-1
4 T-2
5 T-2
6 T-2
7 T-3
8 T-3
9 T-3
10 T-3
Я хочу сгруппировать индекс таким образом, чтобы он соответствовал T-группе, с которой я имею дело, например, это это тот фрейм данных, который я хочу:
T week
1 T-1
2 T-1
3 T-1
4 T-1
1 T-2
2 T-2
3 T-2
1 T-3
2 T-3
3 T-3
4 T-3
Обратите внимание, как индекс начинается снова с 1 (вместо 0), когда появляется новая T-группа.
Я пытался закодировать это, но на самом деле это не сработало. Могли бы помочь!
import os,xlrd,pandas as pd
df = pd.read_excel(r'dir\file.xlsx')
book = xlrd.open_workbook(r'dir\file.xlsx')
sheet = book.sheet_by_name('Sheet1')
t_value = None
next_t = None
tabcount = 0
idx = 1
i = 1
while i!=sheet.nrows:
t_value = df['T Week'][i]
next_t = df['T Week'][i+1]
if t_value == next_t:
tabcount+=1
df.at[i,'Num'] = idx
idx+=1
else:
idx = 0
df.at[i, 'Num'] = idx
i+=1