В этом руководстве мы рассмотрим переименование и объединение.
Часто к нам приходят данные с именами столбцов, индексами или другими соглашениями об именах, которые нас не удовлетворяют. В этом случае вы узнаете, как использовать функции pandas, чтобы изменить имена оскорбительных записей на что-то лучшее.
Вы также узнаете, как объединять данные из нескольких фреймов данных и/или рядов.
Переименование:
Первая функция, о которой мы поговорим, — это функция переименования, которая принимает в качестве аргумента столбца словарь, содержащий старое имя столбца и новое имя, которое вы хотите ему присвоить.
reviews.rename(columns={'points': 'score'})
эта функция поддерживает различные форматы ввода, но обычно словарь Python является наиболее удобным. Вот пример использования его для переименования некоторых элементов индекса.
reviews.rename(index={0: 'firstEntry', 1: 'secondEntry'})
это заменит индекс 0 на «firstEntry», а индекс 1 на «secondEntry», это не очень практично, поэтому вы, вероятно, будете очень часто переименовывать столбцы, но очень редко переименовывать значения индекса. Для этого set_index()
обычно удобнее.
Объединение:
При выполнении операций с набором данных нам иногда нужно будет комбинировать разные кадры данных и/или ряды нетривиальными способами. У Pandas есть три основных метода для этого. В порядке возрастания сложности это concat()
, join()
и merge()
. Большую часть того, что может сделать merge()
, можно также сделать проще с помощью join()
, поэтому мы опустим его и сосредоточимся здесь на первых двух функциях.
Самый простой способ объединения — concat()
. Получив список элементов, эта функция соединит эти элементы вместе по оси.
Это полезно, когда у нас есть данные в разных объектах DataFrame или Series, но с одинаковыми полями (столбцами). Один пример: набор данных YouTube Videos, который разбивает данные по стране происхождения (например, Канада и Великобритания, в этом примере). Если мы хотим изучать несколько стран одновременно, мы можем использовать concat()
, чтобы смешать их вместе:
canadian_youtube = pd.read_csv("../input/youtube-new/CAvideos.csv") british_youtube = pd.read_csv("../input/youtube-new/GBvideos.csv") pd.concat([canadian_youtube, british_youtube])
Самый средний комбайнер по сложности — join()
. join()
позволяет комбинировать разные объекты DataFrame, имеющие общий индекс. Например, чтобы извлечь видео, которые оказались популярными в один и тот же день в и Канаде и Великобритании, мы могли бы сделать следующее:
left = canadian_youtube.set_index(['title', 'trending_date']) right = british_youtube.set_index(['title', 'trending_date']) left.join(right, lsuffix='_CAN', rsuffix='_UK')
Здесь необходимы параметры lsuffix
и rsuffix
, поскольку данные имеют одинаковые имена столбцов как в британском, так и в канадском наборах данных. Если бы это было не так (потому что, скажем, мы их заранее переименовали), они бы нам не понадобились.
Это последнее руководство в этой серии, если вы хотите применить на практике все знания, которые вы приобрели в этой серии руководств, kaggle предлагает отличную среду для практики на наборах данных, а также на заданиях.