【发布时间】:2020-03-05 20:03:04
【问题描述】:
假设我有一个数据框,目前有这样的数据:
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
注意当有一个新的 T 组时,索引如何再次从 1 开始(而不是 0)。
我尝试编写此代码,但它并没有真正起作用。可以使用一些帮助!
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
【问题讨论】:
标签: python pandas dataframe indexing data-manipulation