Pandas - конвертировать имя заголовка в формате кортежа в строку

1

После вычисления процентилей внутри группы имена заголовков находятся в формате кортежа, например [('A', 0.5), ('A',0.9)...('Z',0.9)].

Желаемый результат должен быть:

['P50 A', 'P90 A', ...'P90 Z']

В принципе, я хочу умножить десятичную на 100, чтобы получить процент и перенести его вперед, добавьте букву "P" в каждое поле.

Я чувствую, что должен использовать карту или присоединиться, как предлагалось здесь: как изменить имя столбца из кортежа в строку?

Но не уверен, как справиться с деталями.

  • 2
    df.columns=df.columns.map('{0[0]} {0[1]}'.format)
  • 0
    Можете ли вы показать, как вы пришли к этому в первую очередь? Похоже, вы сделали что-то «странное» здесь.
Показать ещё 1 комментарий
Теги:
pandas

2 ответа

1

Это также работает:

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']

0

Имена текущих столбцов:

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 строк.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню