Не смотрите дальше, это самое подробное руководство по Pandas.

Python pandas
Не смотрите дальше, это самое подробное руководство по Pandas.

Источником этой статьи является сердце машины, оригинальная ссылка:https://towardsdatascience.com/be-a-more-efficient-data-scientist-today-master-pandas-with-this-guide-ea362d27386, если есть какое-либо нарушение, его можно удалить.

Python имеет открытый исходный код, и это здорово, но с открытым исходным кодом связаны некоторые проблемы: многие пакеты делают (или пытаются делать) одно и то же. Если вы новичок в Python, трудно понять, какой пакет лучше всего подходит для конкретной задачи, и вам нужен опытный человек, который подскажет вам. Существует один пакет для науки о данных, который абсолютно необходим, и это панды.

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

pandas эквивалентен excel в python: он использует таблицы (то есть кадры данных), может выполнять различные преобразования данных, но имеет много других функций.

Если вы уже знакомы с использованием Python, вы можете сразу перейти к третьему абзацу.

Давайте начнем:

import pandas as pd

Не спрашивайте, почему это "pd", а не "p", вот и все. Просто используйте его :)

Самые основные функции панд

читать данные

data = pd.read_csv( my_file.csv )
data = pd.read_csv( my_file.csv , sep= ; , encoding= latin-1 , nrows=1000, skiprows=[2,5])

sep обозначает разделитель. Если вы работаете с французскими данными, разделителем CSV в Excel является «;», поэтому вам нужно указать его явно. Для чтения французских символов установлена ​​кодировка latin-1. nrows=1000 означает чтение первых 1000 строк данных. skiprows=[2,5] означает, что вы удалите строки 2 и 5 при чтении файла.

  • Наиболее часто используемые функции: read_csv, read_excel

  • Некоторые другие замечательные функции: read_clipboard, read_sql

записать данные

data.to_csv( my_new_file.csv , index=None)

index=None означает, что данные будут записаны как есть. Если вы не напишите index=None, у вас будет дополнительный первый столбец с содержимым 1, 2, 3, ..., вплоть до последней строки.

Обычно я не использую другие функции, такие как .to_excel, .to_json, .to_pickle и т. д., потому что .to_csv хорошо справляется со своей задачей, а csv — наиболее распространенный способ сохранения таблиц.

Проверить данные

Gives (#rows, #columns)

указать количество строк и столбцов

data.describe()

Рассчитать базовую статистику

Просмотр данных

data.head(3)

Распечатайте первые 3 строки данных. Точно так же .tail() соответствует последней строке данных.

data.loc[8]

распечатать восьмую строку

data.loc[8,  column_1 ]

Распечатайте столбец с именем «column_1» в восьмой строке.

data.loc[range(4,6)]

Подмножества данных для строк с 4 по 6 (закрытые слева и открытые справа)

Основные функции панд

логическая операция

data[data[ column_1 ]== french ]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990)]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990) & ~(data[ city ]== London )]

Возьмите подмножество данных с помощью логических операций. Чтобы использовать & (И), ~ (НЕ) и | (ИЛИ), перед логическими операциями должно стоять «и».

data[data[ column_1 ].isin([ french ,  english ])]

Помимо использования нескольких операций ИЛИ в одном столбце, вы также можете использовать функцию .isin().

базовый рисунок

Пакет matplotlib делает это возможным. Как мы уже говорили во введении, его можно использовать непосредственно в пандах.

data[ column_numerical ].plot()

().plot() пример вывода

data[ column_numerical ].hist()

Постройте распределение данных (гистограмму)

Пример вывода .hist()

%matplotlib inline

Если вы используете Jupyter, не забудьте добавить приведенный выше код перед рисованием.

обновить данные

data.loc[8,  column_1 ] =  english
将第八行名为 column_1 的列替换为「english」
data.loc[data[ column_1 ]== french ,  column_1 ] =  French

Изменить значения нескольких столбцов в одной строке кода

Что ж, теперь вы можете делать некоторые вещи в Excel, к которым легко получить доступ. Давайте рассмотрим удивительную глубину, которую Excel в работе не может достичь.

Промежуточные функции

количество вхождений

data[ column_1 ].value_counts()

Пример вывода функции .value_counts()

работать со всеми строками, столбцами или всеми данными

data[ column_1 ].map(len)

Функция len() применяется к каждому элементу в столбце «column_1».

Операция .map() применяет функцию к каждому элементу в столбце.

data[ column_1 ].map(len).map(lambda x: x/100).plot()

Приятной особенностью pandas является цепочка методов (Том Ауг spur personal.GitHub.IO/method-demolition…и .plot()).

data.apply(sum)

.apply() применит функцию к столбцу.

.applymap() применит функцию ко всем ячейкам в таблице (DataFrame).

tqdm, уникальный

При работе с большими наборами данных pandas тратит некоторое время на выполнение .map(), .apply(), .applymap() и т. д. tqdm — это пакет, который можно использовать для прогнозирования завершения выполнения этих операций (да, я солгал, я сказал, что мы будем использовать только pandas).

from tqdm import tqdm_notebook
tqdm_notebook().pandas()

Настройка tqdm с пандами

data[ column_1 ].progress_map(lambda x: x.count( e ))

Замена .map(), .apply() и .applymap() на .progress_map() аналогична.

Индикатор выполнения с использованием tqdm и pandas в Jupyter

Матрицы корреляции и рассеяния

data.corr()
data.corr().applymap(lambda x: int(x*100)/100)

.corr() даст матрицу корреляции

pd.plotting.scatter_matrix(data, figsize=(12,8))

Пример матрицы рассеяния. Он отображает все комбинации двух столбцов на одном графике.

Расширенные операции в пандах

Ассоциация SQL

Реализация ассоциаций в pandas очень и очень проста

data.merge(other_data, on=[ column_1 ,  column_2 ,  column_3 ])

Для сопоставления трех столбцов требуется всего одна строка кода

группировка

Сначала это не так просто, вам сначала нужно освоить синтаксис, а потом вы обнаружите, что используете эту функцию постоянно.

data.groupby( column_1 )[ column_2 ].apply(sum).reset_index()

Сгруппируйте по одному столбцу, выберите другой столбец для выполнения функции. .reset_index() восстановит данные в таблицу.

Как объяснялось ранее, чтобы оптимизировать код, объедините функции в одну строку.

итерация строки

dictionary = {}

for i,row in data.iterrows():
 dictionary[row[ column_1 ]] = row[ column_2 ]

.iterrows() выполняет цикл вместе, используя две переменные: индекс строки и данные строки (я и строка выше)

В общем, pandas — одна из причин, почему Python — такой замечательный язык программирования.

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

  • Прост в использовании, все сложные и абстрактные расчеты скрыты за кулисами;

  • интуитивно понятный;

  • Быстрый, очень быстрый, если не самый быстрый.

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