Автор оригинала: FreeCodeCapm Team.
Zhen Liu
При обработке данных с использованием библиотеки Pandas в Python вы всегда запутаетесь, когда речь идет о LOC и ILOC, или на карте, применить и applymap? Хотите быстро выберите подмножество, которое вам нужно, и создайте новые функции, прежде чем создавать модели машинного обучения? Используйте этот учебник для практики каждое утро в течение 10 минут и повторяя его в течение недели.
Это как делать несколько маленьких хрустов в день – не для вашего пресса, а для ваших данных науки о данных. Постепенно вы заметите изменения.
После моего предыдущего «Тренировка науки Data» на предварительно обработке данных В этом руководстве мы сосредоточимся на 1) подброс данных и 2) создание новых функций.
content:1) slicing and dicing data to create your feature matrix (loc, iloc and etc)
2)assign, map and transform data to the ideal scale or label for modeling(map, apply, applymap and more)
Сначала загрузите библиотеки и данные циллы для наших упражнений:
1. Нарезка и выравнивание данных
1.1 Нарезка колонн
Что такое LOC и ILOC?
В пандах LOC и ILOC два способа выбрать строки и столбцы с помощью метки (ов) или логического массива.
.loc []
: Вы используете ряд индекс (Может быть как целое число, так и строку. Зависит от того, что указан, например, индекс может быть именами, и может быть числом), а имена столбца для индексации (не может использовать целое число для определения местоположения столбца).
.iloc []
: Вы можете использовать только целые числа, чтобы сделать Позиция- На основании индексации.
Пример: выберите столбцы по имена, используя .loc []
:
Две выражения выше дают вам тот же результат, что и ниже.
Что, если я хочу выбрать первые 5 столбцов?
Теперь мы используем .iloc []
: это ломтики колонн или строки по месту.
Путать с loc () уже? Не волнуйтесь – я покажу вам больше примеров! Но имейте в виду, .loc [] -> index ba
Sed vs .iloc [] -> Позиция
на основе.
1.2 ряды нарезки
Выберите строки, используя индекс by .loc []
(Текущий индекс в DataFrame – это номер строки, назначенный автоматически, он начинается с 1).
Выберите строки, используя местоположение по .iloc []
:
Если вы выбираете 2-й, 3-й и 5-й строки в порядке (запомнить Python отсчитывается от 0, когда он работает в месте, так что это [1,2,4])
1.3 Выберите оба столба и строки
Использование ILOC, чтобы получить 1-5 строк, и первые 6 столбцов по местоположению могут быть достигнуты с помощью LOC, используя индекс строки и имена столбцов. Помните, что Python не ломтизирует индекс окончания, поэтому .iloc [1: 6, ...]
Выберите только ряд 1-5 по положению, пока .loc [1: 5, ...]
:
В чем разница между ILOC и LOC?
Чтобы продемонстрировать разницу лучше, мы изменяем индекс по умолчанию по умолчанию для столбца «Sizerank», который является рангом размера области.
Выберите по индексу [1,2,4]: он дает вам строки с индексом (размер размера), который составляет 1,2,4.
Выберите Использование местоположения [1,2,4]:
1.4 Получить одну определенную ячейку по местоположению
1.5 Пример примера в процессе обучения машины: нажатие данных для функций MATRIX (X) и Vector Repured Vector (Y)
Если вы хотите увидеть, можно ли использовать ежемесячную аренду в качестве учебных данных для определения того, какое государство это, то ваш X – ежемесячная арендная плата, а Y является государством (Просто давая пример нарезки данных для функций и переменной функций и ответов, вы можете попытаться увидеть, будет ли этот прогноз работать).
dataframe.values
Дайте вам форму массива, которую вы можете использовать непосредственно в Sklearn (например, новый X и Y в строке 16-17).
1.6 подмножество на основе условий
Если мы хотим выбрать лучшие 10 лучших регионов:
Другие вариации:
Что произойдет, если мы применяем правило на всей DataFrame? Он не отфильтровал строки или столбцы, но покажет Na для ячеек, которые не соответствуют требованиям:
Если мы фильтруем с вариантом значения столбцов:
Что такое лямбда?
Лямбда функции можно использовать везде, где Функция объекты обязательны. Это аноним, но вы можете назначить ей переменную, например:
Вы можете установить x: max (x) – min (x). Здесь мы фильтруем регионы, когда Sizerank является четным числом.
Используйте Lambda, чтобы применить правило более чем на один столбец:
Примеры на фильтре обе колонны и строки
Это дает ошибку, если мы запустим RAW_DF [RAW_DF.LOC [0]> 450000], потому что существуют не цифровые колонны, такие как состояние или город. Используя то, что мы узнали из моей последней статьи, мы выбираем только цифровые столбцы.
Если мы хотим выбрать данные, ранжируемые топ-5 по размеру, и сохраняют только месяцы, когда аренда превышает 450 000 для первого ряда]
Теперь мы вернемся к использованию RAW_DF со всеми столбцами, и выберите данные, ранжируемые топ-5 размером, и только храните колонки строки на этот раз.
Для этого типа фильтрации на работу 2 элементы внутри [] имеют к каждому выходу A Серия логических результатов (правда, ложь) самостоятельно. В противном случае это не будет работать.
Например:
num_df.loc[num_df['SizeRank']<=5, num_df.loc[0:3]>450000.0]
потерпит неудачу, потому что num_df.loc [ 0: 3 ]> 450000.0 не дает Серьс of Booleans, это AR Луч булевы.
Формат, такой как df.loc [df.a> 0, df.loc [‘index’]> 0] будет работать, потому что он имеет дело только с одной строкой и одним столбцом, поэтому он выбирает 2 серии Booleans.
Будьте осторожны с синтаксисом!
Это дает ошибку, потому что этот формат предполагает, что это строки, но команда фактически выбирает столбцы. .loc []
нужен :
С левой стороны, если условие о столбцах.
Если условие о строках, вы можете игнорировать :
на правой стороне.
2. Назначить, карту и преобразовывать данные в идеальный масштаб
2.1. Назначить значения
Используйте .Copy (), если вы хотите скопировать данные для некоторого преобразования, пока сохраняя исходные данные нетронутыми.
Мы собираемся использовать этот скопированный DataFrame для практики присвоения ценностей.
- Назначьте значения для использования Rows
.loc []
или.iloc []
- Назначьте значения для столбцов
- Создайте новый столбец, назначая значения по условию
Создайте новый столбец, используя существующие столбцы: карта или применить
- Карта: Если бы слишком маленькие столбцы должны изменить значения через создание словаря
2.2 карта : Это итерации по каждому элементу серии, но только одна серия. Мы можем использовать карту для изменения значений в одном столбце.
Например: когда мы индексируем такую колонку: RAW_DF [‘2018-04’], это серия; Таким образом, мы можем использовать карту для изменения подразделения стоимости в 2018-04 к «тысячам», умножая 0,001 в эту серию:
Если мы хотим изменить более одного столбца до тысяч, используйте ApplyMap.
2.3 ApplyMap : Это помогает применить функцию для каждого элемента dataframe.
2.4 Применить: использовать Если нам нужно подать заявку на один или несколько столбцов более конкретно.
Как следует из названия, он применяет функцию вдоль любой оси данных DataFrame.
Обзор: В чем разница между картой, Appymap и Apply?
карта
: Работа на каждом элементе в одной серии или один столбец DF
ApplyMap
: каждый элемент в DF (одинаковая операция для элементов во всех столбцах и строках)
Применить
: операция, которая принимает несколько столбцов из DF
Специальная форма применения: DF [«COL1», «COL2»]. Применить (суммировать)
: Это вернет сумму всех значений столбца1 и столбцов2.
- Специальная форма применения в пандах, чтобы получить агрегированное значение:
Или использовать AGG
Чтобы получить больше типов описательной статистики:
2.4 Использование Применение к данным вскакивания для изучения машины:
Нормализовать и стандартизировать данные в Python (вы можете использовать Стандартный скалер от Sklearn, но это концепция).
Это все для второй части моей серии по созданию мышечной памяти для науки о данных в Python. Первая часть связана в конце.
Следите за обновлениями! Мой следующий учебник покажет вам, как «скрутить мышцы науки о данных для присоединения и поворота данных.
Следуй за мной и дай мне несколько хлопов, если вы найдете это полезно:)
Вы также можете быть заинтересованы в моем анализе на аренду сезонности:
Как проанализировать арендуемую сезонность и тенденцию сэкономить деньги на аренду Когда я искал новую квартиру в аренду, я начал задаться вопросом: есть ли воздействие на сезонность? Есть месяц … Medium.freecodeCamp.org.