Python
February 28, 2023

PANDAS

Ниже перечислены некоторые из основных функций Pandas:

  • Чтение и запись данных:
    • read_csv() - чтение csv-файла и создание объекта DataFrame.
    • read_excel() - чтение Excel-файла и создание объекта DataFrame.
    • to_csv() - запись объекта DataFrame в файл csv.
    • to_excel() - запись объекта DataFrame в файл Excel.
  • Изучение данных:
    • head() - вывод первых строк объекта DataFrame.
    • tail() - вывод последних строк объекта DataFrame.
    • shape - количество строк и столбцов в объекте DataFrame.
    • columns - список названий столбцов в объекте DataFrame.
    • info() - вывод общей информации о DataFrame, включая количество значений в каждом столбце и типы данных
  • Фильтрация данных:
    • loc[] - выбор строк и столбцов по меткам (именам).
    • iloc[] - выбор строк и столбцов по позициям.
    • query() - фильтрация строк на основе логического выражения.
    • isin() - фильтрация строк на основе значения столбца.
    • df[df['column'] == value] - фильтрация строк с определенным значением в столбце 'column'
    • df[(df['column1'] > value1) & (df['column2'] < value2)] - фильтрация строк с условиями на несколько столбцов
    • df.isnull() - возвращает DataFrame той же формы, что и входной, но с булевыми значениями: True, где значение является NaN, иначе False
  • Группировка данных:
    • groupby() - группировка строк по значению столбца.
    • agg() - применение агрегатных функций (среднее значение, сумма, максимальное значение и др.) к группам строк.
    • pivot_table() - создание сводной таблицы на основе объекта DataFrame.
  • Объединение данных:
    • concat() - объединение нескольких объектов DataFrame по строкам или столбцам.
    • merge() - объединение двух объектов DataFrame по заданному столбцу.

drop_duplicates - это функция Pandas, позволяющая удалить дубликаты из датафрейма.

Аргументы:

  • subset (опционально): Подмножество столбцов, по которым необходимо искать дубликаты. Если не указано, то будут использованы все столбцы датафрейма.
  • keep (опционально): Какую запись в случае дублирующегося набора данных следует сохранить. Возможные значения:
    • first (по умолчанию): Сохраняет первое вхождение дублирующегося значения.
    • last: Сохраняет последнее вхождение дублирующегося значения.
    • False: Удаляет все дублирующиеся записи.
  • inplace (опционально): Флаг, указывающий, надо ли применить изменения к исходному датафрейму, а не вернуть новый, измененный датафрейм. Значение по умолчанию: False.

read_sql_query - это встроенная функция библиотеки pandas для чтения SQL-оператора из базы данных прямо в DataFrame.

Эта функция позволяет написать SQL-запрос и использовать его в цикле запросов, таких как GROUP BY, ORDER BY и JOIN.

Параметры функции:

read_sql_query принимает два параметра - sql-запрос и объект адаптера базы данных.

  • sql: параметр принимает текст SQL-запроса, который будет использоваться для вычитывания данных из источника. Например,
  • con: параметр принимает объект адаптера базы данных для подключения к источнику данных. Обычно это объект sqlite3.connect, но может быть и другой connection object, например psycopg2, mysqldb, etc .

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

Основные аргументы sort_values():

  • by – указывает имя столбца (или список столбцов; значения отсортируются по первому столбцу, а затем по второму и т. д., если имеется более одного столбца для сортировки) для сортировки.
  • ascending – принимает значение Boolean, чтобы определить направление сортировки: по возрастанию (True) или по убыванию (False).
  • inplace – если этот аргумент указан как True, то датафрейм будет отсортирован изменением собственных значений.
  • na_position – принимает значения first или last, для того чтобы указать желаемое размещение пропущенных значений (NA).

loc - функция используется для индексации строк и столбцов из DataFrame.

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

# Получение данных о первой строке с индексом 0 
data.loc[0] 
# Получение данных со второй по пятую строку 
data.loc[1:5] 
# Получение данных из первых двух столбцов 
data.loc[:, :2] 
# Получение данных из определенного интервала столбцов 
data.loc[:, 'A':'C'] 
# Получение данных по названию столбца 
data.loc[:, 'Name'] 
# Получение значений определенной строки и столбца 
data.loc[10, 'Name'] 

loc принимает два обязательных параметра:

  • axis: ось, для которой необходимо выбрать элементы. Ось может быть 0 (строки) или 1 (столбцы).
  • labels: выборка значений, которые следует использовать как заголовки или индексы.

loc также принимает два дополнительных опциональных параметра:

  • start: начальное значение, по которому будет определяться диапазон элементов, выбранных для конкретной оси.
  • stop: конечное значение для диапазона.

pd.merge объединяет разные объекты pandas DataFrame

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

Основные параметры функции merge Pandas:

  • on – указывает, на каком столбце должен быть произведен слияние. Он должен быть представлен в виде строки или имен полей.
  • how – указывает метод слияния, который должен использоваться для объединения, по умолчанию («inner»). Другие возможные значения: left, right, outer.
  • left_on and right_on - указывает, какие столбцы использовать в качестве столбцов для объединения.
  • left_index и right_index - если эти параметры установлены в true, то индекс будет использоваться для объединения.
  • sort - для сортировки результатов слияния, по умолчанию False.

Заметки для работы

df['column'] = df['column'].astype(str).str.split(pat=' ', n=1).str.get(0) # ячейку в str, сплитит по пробелу один раз, забирает list[0].

df['column'] = df['column'].apply('функция') - применить функцию к ячейке.

df['list'] = df['list'].apply(ast.literal_eval) - ячейка содержащая список в виде строки - будет преобразована в список и т.д.

str.contains - использует поиск по регулярному выражению, пользоваться осторожно, может найти кучу не нужного.