通过将列的名称与 int 和字符串连接来索引的多索引列
Multiindex columns to Index by concatenating column's name with int and strings
我有我的df.columns =
这个MultiIndex
MultiIndex([( 'F', 1),
( 'F', 2),
( 'F', 3),
( 'F', 4),
( 'F', 5),
( 'F', 6),
( 'F', 7),
( 'F', 8),
( 'F', 9),
( 'FG', 1),
( 'FG', 2),
( 'FG', 3),
( 'FG', 4),
( 'FG', 5),
( 'FG', 6),
( 'FG', 7),
( 'FG', 8),
( 'FG', 9),
( 'R', 1),
( 'R', 2),
( 'R', 3),
( 'R', 4),
( 'R', 5),
( 'R', 6),
( 'R', 7),
( 'R', 8),
( 'R', 9),
('RG', 1),
('RG', 2),
('RG', 3),
('RG', 4),
('RG', 5),
('RG', 6),
('RG', 7),
('RG', 8),
('RG', 9),
( 'FR', 1),
( 'FR', 2),
( 'FR', 3),
( 'FR', 4),
( 'FR', 5),
( 'FR', 6),
( 'FR', 7),
( 'FR', 8),
( 'FR', 9)],
names=[None, 'Profondeur'])
我希望它变成这样 Index
:
Index(['F_1', 'F_2', 'F_3', 'F_4', 'F_5', 'F_6', 'F_7', 'F_8', 'F_9',
'FG_1', 'FG_2', 'FG_3', 'FG_4', 'FG_5', 'FG_6', 'FG_7', 'FG_8', 'FG_9',
'R_1', 'R_2', 'R_3', 'R_4', 'R_5', 'R_6', 'R_7', 'R_8', 'R_9',
'RG_1', 'RG_2', 'RG_3', 'RG_4', 'RG_5', 'RG_6', 'RG_7', 'RG_8', 'RG_9',
'FR_1', 'FR_2', 'FR_3', 'FR_4', 'FR_5', 'FR_6', 'FR_7', 'FR_8', 'FR_9'], dtype='object')
我对MultiIndex
了解不多,是通过unstack()
方法得到的。事实上,我想将两个级别结合起来,将它们的列名称与“_”作为分隔符连接起来。另外 'Profondeur'
标签是 int
可能需要改为 str
通过将列分配回列表,将 MultiIndex
折叠成一个简单的 Index
。在这种情况下,对 '_'.join
MultiIndex 的两个组件(值是简单的元组)使用列表理解,并使用额外的映射到字符串的步骤,因为您不能将字符串与 int 进行字符串连接。
df.columns = ['_'.join(map(str, x)) for x in df.columns]
print(df.columns)
#Index(['F_1', 'F_2', 'F_3', 'F_4', 'F_5', 'F_6', 'F_7', 'F_8', 'F_9', 'FG_1',
# 'FG_2', 'FG_3', 'FG_4', 'FG_5', 'FG_6', 'FG_7', 'FG_8', 'FG_9', 'R_1',
# 'R_2', 'R_3', 'R_4', 'R_5', 'R_6', 'R_7', 'R_8', 'R_9', 'RG_1', 'RG_2',
# 'RG_3', 'RG_4', 'RG_5', 'RG_6', 'RG_7', 'RG_8', 'RG_9', 'FR_1', 'FR_2',
# 'FR_3', 'FR_4', 'FR_5', 'FR_6', 'FR_7', 'FR_8', 'FR_9'],
# dtype='object')
我有我的df.columns =
这个MultiIndex
MultiIndex([( 'F', 1),
( 'F', 2),
( 'F', 3),
( 'F', 4),
( 'F', 5),
( 'F', 6),
( 'F', 7),
( 'F', 8),
( 'F', 9),
( 'FG', 1),
( 'FG', 2),
( 'FG', 3),
( 'FG', 4),
( 'FG', 5),
( 'FG', 6),
( 'FG', 7),
( 'FG', 8),
( 'FG', 9),
( 'R', 1),
( 'R', 2),
( 'R', 3),
( 'R', 4),
( 'R', 5),
( 'R', 6),
( 'R', 7),
( 'R', 8),
( 'R', 9),
('RG', 1),
('RG', 2),
('RG', 3),
('RG', 4),
('RG', 5),
('RG', 6),
('RG', 7),
('RG', 8),
('RG', 9),
( 'FR', 1),
( 'FR', 2),
( 'FR', 3),
( 'FR', 4),
( 'FR', 5),
( 'FR', 6),
( 'FR', 7),
( 'FR', 8),
( 'FR', 9)],
names=[None, 'Profondeur'])
我希望它变成这样 Index
:
Index(['F_1', 'F_2', 'F_3', 'F_4', 'F_5', 'F_6', 'F_7', 'F_8', 'F_9',
'FG_1', 'FG_2', 'FG_3', 'FG_4', 'FG_5', 'FG_6', 'FG_7', 'FG_8', 'FG_9',
'R_1', 'R_2', 'R_3', 'R_4', 'R_5', 'R_6', 'R_7', 'R_8', 'R_9',
'RG_1', 'RG_2', 'RG_3', 'RG_4', 'RG_5', 'RG_6', 'RG_7', 'RG_8', 'RG_9',
'FR_1', 'FR_2', 'FR_3', 'FR_4', 'FR_5', 'FR_6', 'FR_7', 'FR_8', 'FR_9'], dtype='object')
我对MultiIndex
了解不多,是通过unstack()
方法得到的。事实上,我想将两个级别结合起来,将它们的列名称与“_”作为分隔符连接起来。另外 'Profondeur'
标签是 int
可能需要改为 str
通过将列分配回列表,将 MultiIndex
折叠成一个简单的 Index
。在这种情况下,对 '_'.join
MultiIndex 的两个组件(值是简单的元组)使用列表理解,并使用额外的映射到字符串的步骤,因为您不能将字符串与 int 进行字符串连接。
df.columns = ['_'.join(map(str, x)) for x in df.columns]
print(df.columns)
#Index(['F_1', 'F_2', 'F_3', 'F_4', 'F_5', 'F_6', 'F_7', 'F_8', 'F_9', 'FG_1',
# 'FG_2', 'FG_3', 'FG_4', 'FG_5', 'FG_6', 'FG_7', 'FG_8', 'FG_9', 'R_1',
# 'R_2', 'R_3', 'R_4', 'R_5', 'R_6', 'R_7', 'R_8', 'R_9', 'RG_1', 'RG_2',
# 'RG_3', 'RG_4', 'RG_5', 'RG_6', 'RG_7', 'RG_8', 'RG_9', 'FR_1', 'FR_2',
# 'FR_3', 'FR_4', 'FR_5', 'FR_6', 'FR_7', 'FR_8', 'FR_9'],
# dtype='object')