您可以创建
MultiIndex:
df = pd.Dataframe({ 'A':list('abcdef'), 'B':[4,5,4,5,5,4], 'C':[7,8,9,4,2,3], 'D':[1,3,5,7,1,0], 'E':[5,3,6,9,2,4], 'F':list('aaabbb')})使用开始和结束列名称指定级别的新名称:
L = [('OBS','A','C'), ('FIN', 'D','F')]然后在列表理解创建
tuples为
MultiIndex.from_tuples:
cols = [(new, c) for new, start, end in L for c in df.loc[:, start:end].columns]print (cols)[('OBS', 'A'), ('OBS', 'B'), ('OBS', 'C'), ('FIN', 'D'), ('FIN', 'E'), ('FIN', 'F')]df.columns = pd.MultiIndex.from_tuples(cols)print (df) OBS FIN A B C D E F0 a 4 7 1 5 a1 b 5 8 3 3 a2 c 4 9 5 6 a3 d 5 4 7 9 b4 e 5 2 1 2 b5 f 4 3 0 4 b


