Что делают col [: 2] и col [4:] при переборе заголовков столбцов в pandas DataFrame - PullRequest
0 голосов
/ 24 февраля 2020

Я новичок в pandas. Для DataFrame с результатами Olympi c вопрос состоял в том, чтобы изменить имена столбцов путем итерации заголовков столбцов, а затем использовать переименование для переименования имен столбцов. В данном ответе я не понимаю, что делает col [: 2], а в параметрах переименования, что делает col [4:]? Можете ли вы помочь мне понять, что делает код? Спасибо. (Извините, я не могу вставлять картинки, поэтому кадры данных до и после находятся в ссылках.) dataframe_before dataframe_after

Данный код:

for col in df.columns:
    if col[:2]=='01':
    df.rename(columns={col:'Gold' + 
    col[4:]}, inplace=True)
if col[:2]=='02':
    df.rename(columns={col:'Silver' + 
    col[4:]}, inplace=True)
if col[:2]=='03':
    df.rename(columns={col:'Bronze' + 
    col[4:]}, inplace=True)
if col[:1]=='№':
    df.rename(columns={col:'#' + 
    col[1:]}, inplace=True) 

df.head ()

1 Ответ

0 голосов
/ 24 февраля 2020

В кадре данных до изменения заголовки столбцов имеют заданную структуру c. Каждый заголовок начинается с 01 для золота, 02 для серебра и 03 для бронзы. После первых двух символов у него может быть другая идентифицирующая информация. Но, как я вижу из более раннего информационного кадра, идентифицирующая информация отделена от первых двух букв символом newline и символом ! (пример: 01\n!.123, 03\n!.456). Целью кода является замена первых двух цифр на соответствующие им типы медалей без изменения следующей информации.

col[:2] индексирует все буквы перед позицией 2, то есть первые две буквы, и заменяет их с соответствующим типом медали. Мы не хотим, чтобы оставшаяся информация изменялась, но мы также хотим отбросить промежуточные символы newline и !. Таким образом, мы просто берем все с четвертой позиции в оригинальном имени, которая уже пропускает первые два (уже замененных) и промежуточных символов, которые нам не нужны, и добавляем это к именам медалей, которые мы только что создали. col[4:] делает именно это.

Я предположил некоторые вещи относительно имен исходного кадра данных. Пожалуйста, дайте мне знать, если какое-либо из этих предположений неверно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...