Python пятница # 4

Оценив свои запланированные проекты, я обнаружил, что большинство из них связано с генерированием, сбором и анализом данных. В таком случае я провел кучу поисков в Интернете и нашел этот сайт под названием Data Quest.

Data Quest - это потрясающе!

Я только заканчиваю свой первый курс, но пока это был отличный опыт. Это то, что заставило меня возиться с пандами 🐼 И я понял, что мне нужно иметь глубокое понимание того, как использовать панды, чтобы делать некоторые вещи Планирую сделать в ближайшее время.

Начиная

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

Сценарий

В этой задаче я буду использовать файл Cars.csv с веб-сайта Наборы данных проекта, о котором я упоминал ранее.

Из описания файла на сайте я знаю, что в этом файле есть данные для более чем 400 автомобилей.

Первые 3 вещи, которые приходят мне на ум при работе с автомобилями, - это расход топлива на галлон, цена и характеристики автомобиля. Меня не особо заботит, как быстро машина может разогнаться до 80 миль в час, главное, чтобы она могла ее достичь.

К сожалению, в наборе данных нет ничего, на что я смотрел бы, кроме MPG. Ничего страшного, многое еще предстоит сделать!

Задания

  1. Прочтите файл .csv прямо в фрейм данных pandas. Это значительно упростит все дальнейшие шаги.
  2. Найдите название каждого столбца.
  3. Найдите машину с самым высоким MPG.
  4. Найдите автомобиль с наименьшим расходом топлива на галлон.
  5. Найдите среднее значение MPG для всех автомобилей.
  6. Найдите самый распространенный MPG.

Правила

  1. Используйте панд по максимуму! Это означает, что для достижения вышеуказанных целей используйте только функции панд.
  2. Вот и все!

Посмотрим код

Вот мой код решения. КАК ОБЫЧНО Я не утверждаю, что мой код - это ИДЕАЛЬНЫЙ способ решить эти проблемы с кодом. Это всего лишь один из способов добиться желаемых результатов.

Некоторые проблемы

1) Набор данных, предоставленный этим веб-сайтом, хотя и удобен, но не разделен запятыми. Он был разделен точкой с запятой. В этом отношении pandas - действительно полезная утилита! Это может изначально позволить вам указать разделяющее значение.

pandas.read_csv('your_csv_path.csv', sep=';')

Перед тем, как указать этот разделитель, он выводил всевозможные странные вещи, но не выдавал ошибку в терминале.

2) Я пытался заниматься математикой на струнах! Когда вы пытаетесь выделить данные из столбца MPG, вы должны быть уверены, что создаете серию с числовыми значениями, а не строками.

# Change the column type IN the dataframe.
CARS['MPG'] = CARS['MPG'].iloc[1:].astype(float)

Я начал с первой строки, потому что первая строка продолжала возвращать значение из нулевой строки, которое говорило «DOUBLE». Я немедленно отказался от этого и просто переназначил из первого ряда.

3) В наборе данных было несколько нулевых значений. Чтобы очистить данные, я создал фильтр для удаления этих нулевых значений из набора данных.

# Create a zero filter
NON_ZERO_FILTER = CARS['MPG'] != 0
# Filtered MPG
MPG = CARS[NON_ZERO_FILTER]

Забрать

Эта проверка кода заняла у меня около часа. На эти мелочи уходит много времени, но я чувствую, что они делают меня сильнее.

  • Панды только чувствуют себя немного чужими. Фрейм данных настолько мощный. Я думаю, что такое количество мощности с .csv в терминале для меня просто чуждо.
  • Мне очень нравится этот веб-сайт наборов данных проекта. Если вы знаете какие-либо другие хорошие наборы данных, содержащие от 500 до 5000 строк, дайте мне знать!
  • Посол AMC Брум: Я никогда раньше не слышал об этом автомобиле, но очевидно, что он расходует всего около 9 миль на галлон.

Используя предыдущие испытания

В последнем задании я рассмотрел Модульные тесты. В сегодняшней задаче действительно не на чем будет проводить модульные тесты. Но вы можете написать функциональные тесты для проверки типов при использовании панд, если хотите. Опять же, это на самом деле не нужно, потому что панды красиво выводятся на консоль.

На следующей неделе я попытаюсь настроить блокнот Jupyter и глубоко погрузлюсь в документацию pandas.

Спасибо за чтение! 💚