Переименовать несколько столбцов на основе поиска по шаблону - PullRequest
0 голосов
/ 14 февраля 2019

Я импортирую файл Excel с большим количеством отступов в значениях строк.Эти отступы используются для указания категорий и подкатегорий.Когда я портирую файл в pandas, появляется множество безымянных столбцов, таких как:

['Уровни в миллионах', 'Безымянный: 1', 'Безымянный: 2', 'Безымянный: 3 ',' ',' Общенациональные расходы на здравоохранение ',' Больничная помощь ',' Врачи и клинические услуги ',' Другие профессиональные услуги ',' Стоматологические услуги ', ' Безымянный: 10 ', «Прочие медицинские, бытовые и индивидуальные услуги», «Медицинское обслуживание на дому», «Учреждения по уходу и уходу на пенсию», «Безымянный: 14», «Лекарства, отпускаемые по рецепту», «Медицинское оборудование длительного пользования», «Прочиемедицинские товары длительного пользования »,« Безымянный: 18 »,« Безымянный: 19 »,« Государственный »,« Федеральный »,« Чистая стоимость медицинского страхования »,« Деятельность государственного здравоохранения »,« Безымянный: 24 »,« Исследования », 'Структуры', 'Оборудование']

Я попробовал пару вещей:

    type_of_prog_1.columns= type_of_prog_1.columns.str.replace('Unnamed: *', 
    '')
    type_of_prog_1= type_of_prog_1.rename(columns=lambda x: 
    x.replace('Unnamed: *', 'Level: *'))

Вывод состоит в том, что столбцы получают числа как 1, 2, 3,и т. д. Нумерованные столбцы затрудняют нарезку, позже.

В идеале, я хочу, чтобы столбцыo быть названным как "Уровень 1" или Уровень 2 "на основе чисел после" Безымянный ".Поскольку существует 24 столбца Безымянный, я не хочу этого делать - {"Безымянный 1": "Уровень 1", ...}

1 Ответ

0 голосов
/ 14 февраля 2019

Исходя из вашего описания проблемы, вы можете позвонить Index.str.replace:

df.columns = df.columns.str.replace('Unnamed:', 'Level')
...