Автор оригинала: Chris.
В этом руководстве дается вам быстрое и грязное введение в самые важные функции Pandas. Популярный QuickStart в библиотеку Pandas предоставляется официальным «10 минут до Пандас» руководство.
Это руководство перед вами стремится охватывать наиболее важные 80% официального руководства, но в 50% времени. Готовы ли вы инвестировать 5 ваших драгоценных минут, чтобы начать работу в Пандах и повысить свои навыки данных и навыки Python в то же время? Давайте погрузимся прямо в это!
Визуальный обзор [чит-лист]
Я всегда нахожу полезным дать быстрый обзор тем, охватываемых в визуальной форме. Чтобы помочь вам понять большую картину, я визуализировал темы, описанные в этой статье в следующих чит-листе Pandas:
Давайте перейдем на разные части этого визуального обзора пошагового шага.
Как использовать Pandas?
Вы получаете доступ к библиотеке Pandas с Импортировать панды как PD
Заявление, которое присваивает идентификатор Name Name PD к модулю для простоты доступа и краткости. Вместо Pandas.somefunction ()
Теперь вы можете позвонить PD.somefunction ()
Отказ
import pandas as pd
Вы можете установить библиотеку Pandas в вашу виртуальную среду или компьютер, используя следующую команду:
pip install pandas
Если вы не можете сделать это, вы столкнетесь с ошибкой импорта:
>>> import pandas as pd Traceback (most recent call last): File "yourApp.py", line 1, inimport pandas as pd ImportError: No module named pandas
Пандас уже установлен во многих средах, таких как в анаконде. Вы можете найти подробную руководство по установке здесь:
Руководство по установке: https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html.
Как создавать объекты в пандах?
Два самых важных типа данных в пандах являются серии и DataFrames.
- А Панда серии является одномерным меченым массивом значений данных. Подумайте об этом как о столбце в листе Excel.
- А Pandas DataFrame Это двумерная меченая структура данных – очень похожа на электронную таблицу (E.g., Excel) в вашем коде Python.
Эти две структуры данных являются помечены -Мы называете этикетки Индексы структур данных. Основное отличие состоит в том, что серия одномерная, в то время как датафарам является двумерным.
Серия : Вот пример того, как создать объект серии:
import pandas as pd s = pd.Series([42, 21, 7, 3.5]) print(s) ''' 0 42.0 1 21.0 2 7.0 3 3.5 dtype: float64 '''
Вы используете портить Серия ()
Конструктор и пропустите плоский список значений в него. Вы также можете пропустить другие типы данных, такие как строки в него. Pandas автоматически определяет тип данных всей серии в Dtype
атрибут.
Dataframe. : Вот пример того, как создать объект DataFrame:
import pandas as pd s = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) print(s) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 '''
Вы используете портить Dataframe ()
Конструктор с одним аргументом: Словарь Это описывает датафарам. Словарь отображает имена столбцов, такие как «Возраст»
, «Имя»
и «кардио»
к значениям столбцов, таких как [«Алиса», «Боб», «Карл»]
Для колонны «Имя»
Отказ Вы можете предоставить только одно значение столбца, например 18
и назначьте его целую колонку, такую как «Возраст»
Отказ Pandas тогда автоматически трансляция Значение для всех существующих строк в DataFrame.
Как выбрать элементы в серии и данных DataFrames?
Давайте применяем некоторые первые принципы мышления: как серия, так и датафарам Структуры данных Отказ Целью структуры данных является облегчить хранение, доступ и анализ данных Отказ В качестве альтернативы, вы можете хранить Табличные данные С рядами и колоннами в Список кортежи – один на ряд – но доступ к данным был бы очень неэффективным. Тем не менее, доступ к всем элементам I-й колонны будет очень больно, потому что вам придется пройти весь список и состоит в том, чтобы совокупность I-й ценности кортежей.
К счастью, Pandas предоставляет хранение данных, доступ и анализ табличных данных как можно проще. Это как эффективный, так и читаемый.
Колонка : Вот как вы можете получить доступ к столбцу с схемой индексации, вы уже знаете из Словари Python и Numpy массивы (Обозначение квадратных кронштейнов):
import pandas as pd s = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' # Select all elements in column 'age' print(s['age']) ''' 0 18 1 18 2 18 Name: age, dtype: int64 '''
После импорта модуля PandaS и создании DataFrame с тремя столбцами и тремя строками вы выбираете все значения в столбце, помеченном «Возраст»
Использование квадратной нотации кронштейна S [«Возраст»]
Отказ Семантически эквивалентная альтернатива будет синтаксисом S.AGE
Отказ
Ряды : Вы можете получить доступ к определенным строкам в DataFrame с помощью обозначения нарезки S [Старт: Стоп]
Отказ Чтобы получить доступ только одну строку, установите Начните
и конец
Индексы соответственно:
import pandas as pd s = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' print(s[2:3]) ''' age name cardio 2 18 Carl 80 '''
Вы можете найти полный учебник нарезки в следующих статьях блогов Finxter.
Статья
- Ultimate Guide к Python Нарезка
- Намененное нарезка
Логическая индексация
Мощный способ доступа к строкам, которые соответствует определенному условию, это Логическая индексация Отказ
import pandas as pd s = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' print(s[s['cardio']>60]) ''' age name cardio 1 18 Bob 70 2 18 Carl 80 '''
Состояние S ['Cardio']> 60
приводит к ряду логических ценностей. i
-место логическое значение – «Истина»
Если Я
-ный элемент «кардио»
столбец больше 60. Это держит для первых двух рядов DataFrame.
Затем вы передаете эти логические значения в качестве схемы индексации в DataFrame S
который приводит к DataFrame только с двумя рядами вместо трех.
Выбор по этикетке
Вы можете получить доступ к PandaS Dataframe на этикетке с использованием механизма индексации pd.loc [ряды, столбцы]
Отказ Вот пример:
import pandas as pd df = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' print(df.loc[:, 'name']) ''' 0 Alice 1 Bob 2 Carl Name: name, dtype: object '''
В примере вы получите доступ к всем строкам из колонны «Имя»
Отказ Чтобы получить доступ к первым двум рядам с столбцами «Возраст»
и «кардио»
Используйте следующую схему индексации, передавая список меток столбцов:
print(df.loc[:, ['age', 'cardio']]) ''' age cardio 0 18 60 1 18 70 2 18 80 '''
Пока loc
Индекс предоставляет вам способ получить доступ к содержимому содержимое DataFrame с помощью метки, вы также можете получить доступ к нему по индексу, используя Iloc
показатель.
Выбор по индексу
Как получить доступ к Я
-th ряд и J
-Й столбец? Iloc
Индекс позволяет выполнять именно так:
import pandas as pd df = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' i, j = 2, 1 print(df.iloc[i, j]) ''' Carl '''
Первый аргумент Я
Доступ к Я
– ряд и второй аргумент J
Доступ к J
-место столбца Iloc
показатель. Значение данных в третьей строке с индексом 2 и второй столбец с индексом 1 – «Карл»
Отказ
Как изменить существующий dataframe
Вы можете использовать обсуждаемые технологии выбора для изменения и, возможно, перезаписывают часть вашего dataframe. Для этого выберите замены детали или вновь созданные на правой части и установите новые данные на левой стороне выражения назначения. Вот минимальный пример, который перезаписывает целочисленные значения в «Возраст»
столбец:
import pandas as pd df = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' df['age'] = 17 print(df) ''' age name cardio 0 17 Alice 60 1 17 Bob 70 2 17 Carl 80 '''
Во-первых, вы выбираете возрастной столбец с DF [«Возраст»]
Отказ Во-вторых, вы перезаписываете его целочисленным значением 17. Pandas использует вещание Чтобы скопировать одно целое число на все строки в столбце.
Вот более продвинутый пример, который использует нарезку и loc
Индекс для перезаписи все, кроме первого ряда возраста столбца:
import pandas as pd df = pd.DataFrame({'age': 18, 'name': ['Alice', 'Bob', 'Carl'], 'cardio': [60, 70, 80]}) ''' age name cardio 0 18 Alice 60 1 18 Bob 70 2 18 Carl 80 ''' df.loc[1:,'age'] = 17 print(df) ''' age name cardio 0 18 Alice 60 1 17 Bob 70 2 17 Carl 80 '''
Можете ли вы обнаружить разницу между DataFrames?
Пандас очень прочная, и если вы поняли различные схемы индексации-кронштейна, нарезки, loc
и Iloc
-Вы также поймете, как перезаписать существующие данные или добавлять новые данные.
Например, вот как вы можете добавить новый столбец с loc
Индекс, нарезка и вещание:
df.loc[:,'love'] = 'Alice' print(df) ''' age name cardio love 0 18 Alice 60 Alice 1 17 Bob 70 Alice 2 17 Carl 80 Alice '''
В то время как Pandas имеет много дополнительных функций, таких как вычисление статистики, построение, группировка и изменение для имени всего несколько … 5 минут, чтобы урок Pandas заканчивается здесь. Если вы поняли эти концепции, обсуждаемые в этом руководстве, вы сможете прочитать и понимать существующие код Panda с небольшой помощью от официальных документов и Google, чтобы выяснить различные функции.
Не стесняйтесь пройти наши курсы Pandas и предстоящие книги, чтобы улучшить свои навыки панды с течением времени. Вы можете подписаться на бесплатную академию электронной почты здесь.
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.
Оригинал: “https://blog.finxter.com/pandas-quickstart/”