- Что такое пакет Pandas
- Установка и начало работы
- Загрузка данных из CSV в Pandas DataFrame
- Что такое DataFrame и как он работает
- Нарезка фреймов данных
- Математические операции над DataFrame
Это похоже на то, что нужно покрыть. Давай начнем сейчас.
Что такое пакет 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 по мере необходимости с помощью таких операторов, как:
- iloc [: 4 ,:] - выбирает первые 4 строки и все столбцы для этих строк.
- iloc [:,:] - выбирается весь DataFrame
- iloc [5:, 5:] - строки, начиная с позиции 5, и столбцы, начиная с позиции 5.
- iloc [:, 0] - первый столбец и все строки для столбца.
- iloc [9 ,:] - 10-я строка и все столбцы для этой строки.
В предыдущем разделе мы уже видели индексацию и нарезку с именами столбцов вместо индексов. Также можно смешивать нарезку с номерами индексов и именами столбцов. Давайте посмотрим на простой фрагмент кода:
студенты.loc [: 5, 'Имя']Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Можно указать более одного столбца:
студенты.loc [: 5, ['Имя', 'Контактное лицо в чрезвычайных ситуациях']]Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Структура данных серии в Pandas
Как и Pandas (многомерная структура данных), Series - это одномерная структура данных в Pandas. Когда мы получаем один столбец из DataFrame, мы фактически работаем с Series:
тип (студенты ["Имя"])Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Мы также можем создать нашу собственную серию, вот фрагмент кода для нее:
серия = pd.Серия (['Шубхам', 3.7])ряд
Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Как видно из приведенного выше примера, серия также может содержать несколько типов данных для одного и того же столбца.
Логические фильтры в Pandas DataFrame
Одна из хороших вещей в Pandas - это то, как извлекать данные из DataFrame на основе условия. Подобно извлечению учеников, только когда число бросков больше 6:
roll_filter = студенты ['RollNo']> 6roll_filter
Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Что ж, это не то, что мы ожидали. Хотя в выходных данных довольно четко указано, какие строки удовлетворяли предоставленному нами фильтру, но у нас все еще нет точных строк, которые удовлетворяли бы этому фильтру. Получается что мы можем использовать фильтры как индексы DataFrame также:
студенты [roll_filter]Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
В фильтре можно использовать несколько условий, чтобы данные можно было фильтровать с помощью одного краткого фильтра, например:
next_filter = (студенты ['RollNo']> 6) & (студенты ['Имя']> 'S')студенты [next_filter]
Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Расчет медианы
В DataFrame мы также можем вычислять множество математических функций. Приведем наглядный пример вычисления медианы. Медиана будет рассчитана для даты, а не только для чисел. Давайте посмотрим на короткий фрагмент кода того же:
даты = студенты ['Дата зачисления'].astype ('datetime64 [нс]').квантиль (.5)даты
Запустив приведенный выше фрагмент кода, мы увидим следующий результат:
Мы достигли этого, сначала проиндексировав столбец даты, который у нас есть, а затем предоставили тип данных для столбца, чтобы Pandas мог правильно вывести его, когда применяет функцию квантиля для расчета средней даты.
Заключение
В этом уроке мы рассмотрели различные аспекты библиотеки обработки Pandas, которую мы можем использовать с Python для сбора данных из различных источников в структуру данных DataFrame, которая позволяет нам изощренно работать с набором данных. Это также позволяет нам получить подмножество данных, с которыми мы хотим работать в данный момент, и предоставляет множество математических операций.
Поделитесь своими отзывами об уроке в Twitter с @sbmaggarwal и @LinuxHint.