После вычисления процентилей внутри группы имена заголовков находятся в формате кортежа, например [('A', 0.5), ('A',0.9)...('Z',0.9)]
.
Желаемый результат должен быть:
['P50 A', 'P90 A', ...'P90 Z']
В принципе, я хочу умножить десятичную на 100, чтобы получить процент и перенести его вперед, добавьте букву "P" в каждое поле.
Я чувствую, что должен использовать карту или присоединиться, как предлагалось здесь: как изменить имя столбца из кортежа в строку?
Но не уверен, как справиться с деталями.
Это также работает:
original_names = [('A', 0.5), ('A',0.9),('Z',0.9)]
new_names = ['P'+str(int(100*y)) + ' ' + x for x,y in original_names]
Результат: ['P50 A', 'P90 A', 'P90 Z']
Имена текущих столбцов:
col_name = [('A', 0.5), ('A',0.9),('Z',0.9)]
Названия требуемых столбцов:
desired_col_named = [f'P{x[1]*100} {x[0]}' for x in col_name]
Предполагая, что у вас есть python 3.6, поддерживающий f строк.
df.columns=df.columns.map('{0[0]} {0[1]}'.format)