панды

Учебник Pandas на Python

Учебник Pandas на Python
В этом уроке, посвященном библиотеке Python Pandas, мы рассмотрим различные структуры данных, которые этот пакет Python предоставляет для функций быстрой обработки данных, которые эффективны для динамических данных и управления сложными операциями над многомерными данными. В этом уроке мы в основном рассмотрим:

Это похоже на то, что нужно покрыть. Давай начнем сейчас.

Что такое пакет Python Pandas?

Согласно домашней странице Pandas: pandas - это библиотека с открытым исходным кодом, лицензированная BSD, обеспечивающая высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для языка программирования Python.

Одна из самых крутых особенностей Pandas заключается в том, что он позволяет читать данные из распространенных форматов данных, таких как CSV, SQL и т. Д. очень простой, что делает его одинаково пригодным для использования в промышленных приложениях или просто в некоторых демонстрационных приложениях.

Установите Python Pandas

Просто обратите внимание, прежде чем начать процесс установки, мы используем виртуальную среду для этого урока, который мы сделали с помощью следующей команды:

Python -m virtualenv панды
исходные панды / bin / активировать

Как только виртуальная среда станет активной, мы можем установить библиотеку pandas в виртуальную среду, чтобы можно было выполнять следующие примеры:

pip install pandas

Или мы можем использовать Conda для установки этого пакета с помощью следующей команды:

conda установить панды

Мы видим что-то подобное, когда выполняем указанную выше команду:

После завершения установки с Conda мы сможем использовать пакет в наших скриптах Python как:

импортировать панд как pd

Давайте теперь начнем использовать Pandas в наших скриптах.

Чтение CSV-файла с помощью Pandas DataFrames

С Pandas легко читать CSV-файл. Для демонстрации мы создали небольшой CSV-файл со следующим содержимым:

Имя, номер ролика, дата поступления, контакт для экстренной помощи
Шубхам, 1,20-05-2012,9988776655
Гаган, 2,20-05-2009,8364517829
Осима, 3,20-05-2003,5454223344
Вём, 4,20-05-2009,1223344556
Анкур, 5,20-05-1999,9988776655
Винод, 6,20-05-1999,9988776655
Випин, 7,20-05-2002,9988776655
Ронак, 8,20-05-2007,1223344556
DJ, 9,20-05-2014,9988776655
VJ, 10,20-05-2015,9988776655

Сохраните этот файл в том же каталоге, что и скрипт Python. Как только файл появится, добавьте следующий фрагмент кода в файл Python:

импортировать панд как pd
студенты = pd.read_csv ("студенты.csv ")
студенты.глава()

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Функцию head () в Pandas можно использовать для отображения образца данных, присутствующих в DataFrame. Подождите, DataFrame? Мы изучим гораздо больше о DataFrame в следующем разделе, но просто поймем, что DataFrame - это n-мерная структура данных, которую можно использовать для хранения и анализа или сложных операций над набором данных.

Мы также можем увидеть, сколько строк и столбцов имеют текущие данные:

студенты.форма

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Обратите внимание, что Pandas также считает количество строк, начиная с 0.

Можно получить только столбец в списке с помощью Pandas. Это можно сделать с помощью индексация в пандах. Давайте посмотрим на короткий фрагмент кода того же:

student_names = студенты ['Имя']
имя_студента

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Но это не похоже на список, не так ли?? Что ж, нам нужно явно вызвать функцию для преобразования этого объекта в список:

student_names = имена учеников.к списку()
имя_студента

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Просто для дополнительной информации мы можем убедиться, что каждый элемент в списке уникален, и мы выбираем только непустые элементы, добавляя несколько простых проверок, например:

student_names = студенты ['Имя'].dropna ().уникальный().к списку()

В нашем случае вывод не изменится, так как список уже не содержит фол-значений.

Мы также можем создать DataFrame с необработанными данными и передать вместе с ними имена столбцов, как показано в следующем фрагменте кода:

my_data = pd.DataFrame (
[
[1, «Чан»],
[2, «Смит»],
[3, «Уинслет»]
],
columns = ["Ранг", "Фамилия"]
)
мои данные

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Нарезка фреймов данных

Разбивка DataFrames для извлечения только выбранных строк и столбцов - важная функция, позволяющая удерживать внимание на необходимых частях данных, которые нам нужно использовать. Для этого Pandas позволяет нам разрезать DataFrame по мере необходимости с помощью таких операторов, как:

В предыдущем разделе мы уже видели индексацию и нарезку с именами столбцов вместо индексов. Также можно смешивать нарезку с номерами индексов и именами столбцов. Давайте посмотрим на простой фрагмент кода:

студенты.loc [: 5, 'Имя']

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Можно указать более одного столбца:

студенты.loc [: 5, ['Имя', 'Контактное лицо в чрезвычайных ситуациях']]

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Структура данных серии в Pandas

Как и Pandas (многомерная структура данных), Series - это одномерная структура данных в Pandas. Когда мы получаем один столбец из DataFrame, мы фактически работаем с Series:

тип (студенты ["Имя"])

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Мы также можем создать нашу собственную серию, вот фрагмент кода для нее:

серия = pd.Серия (['Шубхам', 3.7])
ряд

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Как видно из приведенного выше примера, серия также может содержать несколько типов данных для одного и того же столбца.

Логические фильтры в Pandas DataFrame

Одна из хороших вещей в Pandas - это то, как извлекать данные из DataFrame на основе условия. Подобно извлечению учеников, только когда число бросков больше 6:

roll_filter = студенты ['RollNo']> 6
roll_filter

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Что ж, это не то, что мы ожидали. Хотя в выходных данных довольно четко указано, какие строки удовлетворяли предоставленному нами фильтру, но у нас все еще нет точных строк, которые удовлетворяли бы этому фильтру. Получается что мы можем использовать фильтры как индексы DataFrame также:

студенты [roll_filter]

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

В фильтре можно использовать несколько условий, чтобы данные можно было фильтровать с помощью одного краткого фильтра, например:

next_filter = (студенты ['RollNo']> 6) & (студенты ['Имя']> 'S')
студенты [next_filter]

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

Расчет медианы

В DataFrame мы также можем вычислять множество математических функций. Приведем наглядный пример вычисления медианы. Медиана будет рассчитана для даты, а не только для чисел. Давайте посмотрим на короткий фрагмент кода того же:

даты = студенты ['Дата зачисления'].astype ('datetime64 [нс]').квантиль (.5)
даты

Запустив приведенный выше фрагмент кода, мы увидим следующий результат:

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

Заключение

В этом уроке мы рассмотрели различные аспекты библиотеки обработки Pandas, которую мы можем использовать с Python для сбора данных из различных источников в структуру данных DataFrame, которая позволяет нам изощренно работать с набором данных. Это также позволяет нам получить подмножество данных, с которыми мы хотим работать в данный момент, и предоставляет множество математических операций.

Поделитесь своими отзывами об уроке в Twitter с @sbmaggarwal и @LinuxHint.

Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...
0 А.D. Руководство
Из множества существующих стратегических игр 0 A.D. удается выделиться как всеобъемлющее название и очень глубокая тактическая игра, несмотря на то, ч...
Учебное пособие по Unity3D
Введение в Unity 3D Unity 3D - мощный движок для разработки игр. Это кроссплатформенный, то есть он позволяет создавать игры для мобильных устройств, ...