Перейти к содержимому

Как вернуть ранее удаленный столбец dataframe

  • автор:

Pandas: Как вернуть один столбец из двух переданных в DataFrame.apply()?

63c13265b0c7a386487520.png

Добрый день!
Есть такой DataFrame:

Присутствуют пустые строки в столбце ‘Возраст’. Я хочу их заменить на средние значения в соответствии с классом (т.к. есть корреляция).
Пробую реализовать так:

#Загрузка данных в data data = . # Средний возраст для каждого соц класса soc = pd.Series(data['Социальный класс'].unique(), name='Социальный класс') mean = pd.Series([data['Возраст'].loc[data['Социальный класс'] == _].mean() for _ in soc], name='Возраст') soc_mean = pd.concat([soc, mean], axis=1) # Фильтруем дату. Если возраст NaN то выполняется условие получения возраста из soc_mean func_filter = lambda x: soc_mean['Возраст'].loc[soc_mean['Социальный класс'] == x['Социальный класс']] if x['Возраст'] != x['Возраст'] else x['Возраст'] data['Возраст'] = data[['Социальный класс', 'Возраст']].apply(func_filter, axis=1)

Так как в последней строке я пытаюсь вернуть в data отфильтрованный soc_mean(DataFrame) в ячейку с NaN. Туда попадает весь DataFrame, вместо самого значения.
Однако второй столбец(‘Социальный класс’) в soc_mean нужен для фильтрации, возможно ли вернуть только soc_mean[‘Возраст’]?

PS lambda

Заметил, что лямбда очень нагружена и тяжела для понимания. Изначально думал над решение типа:
func = lambda x, y: soc_mean[x] if y != y else y
Но так и не додумался как это реализовать, потому что в .apply() не смог передать столбцы в разных переменных. Сколько не искал, так и не нашел примера где в .apply() передают разные столбцы по смыслу (1 для фильтра, 2 для изменения).

  • Вопрос задан 13 янв. 2023
  • 94 просмотра

Как найти и вернуть конкретное строковое значение в ячейке?

введите сюда описание изображения

Есть таблица типа: Нужно добавить колонку «Готовность к переезду», а нужную информацию взять из колонки «Город». Начал делать таким образом:

df.insert(5,'Готовность к переезду', np.array([df['Город'][i].split(',')[1] for i in range(len(df))])) 

Но в колонке «Город» так же указано еще и метро, что приводит к тому, что в нужной ячейке вместо готовности к переезду появляется станция метро. В ячейке встречаются нужные варианты ответов типа:»готов к переезду»,»не готов к переезду», «готова к переезду», «не готова к переезду». Подскажите, пожалуйста, как вернуть нужный элемент в строке? Сама таблица

Отслеживать

2,175 2 2 золотых знака 8 8 серебряных знаков 29 29 бронзовых знаков

7 основных способов для управления столбцами в Pandas

Когда дело доходит до анализа данных, Pandas является наиболее используемой библиотекой Python для обработки и подготовки данных для дальнейшего анализа и машинного обучения.

Реальность такова, что Pandas — действительно гибкая библиотека, и её можно использовать даже для преобразования форматов файлов.

Однако, даже если мы используем некоторые функции Pandas едва ли не каждый день, мы тратим много времени на интернет-сёрфинг (поиск ответов на то, как что-то сделать в Pandas?).

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

Тем не менее, экономия времени — это всегда хорошая идея. По этой причине в этой статье мы рассмотрим 7 основных способов для управления столбцами в Pandas. Таким образом, вам больше не нужно будет их гуглить: вам просто нужно сохранить эту статью (возможно, в закладках) и возвращаться к ней всякий раз, когда она вам понадобится.

Вот что вы найдете здесь:

Как создать новый столбец в Pandas

Как переименовать столбец в Pandas

Как добавить новый столбец во фрейм данных Pandas

Как удалить столбец в Pandas

Как найти уникальные значения в столбце Pandas

Как преобразовать столбец Pandas в список

Как отсортировать фрейм данных Pandas по столбцам

Как создать новый столбец в Pandas

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

Есть несколько способов создать новый столбец Pandas. Давайте посмотрим их все!

Создайте столбец Pandas как Pandas Series

Правильный метод создания столбца Pandas, который, как считается, «живёт» сам по себе, — это метод Series, который мы рассматриваем ниже:

# Create a Pandas series series = pd.Series([6, 12, 18, 24]) # Print Pandas series print(series) >>> 0 6 1 12 2 18 3 24 dtype: int64

Я сказал «правильный метод», потому что, как мы уже говорили, столбец Pandas — это то же самое что Pandas Series. Итак, если нам нужен только один столбец, мы должны использовать этот метод, если нам хочется быть «формально правильными».

Создайте столбец Pandas как фрейм данных Pandas

Однако реальность такова, что столбец сам по себе нам понадобится нечасто.

Итак, ещё один способ создать столбец в Pandas — создать новый фрейм данных только с одним столбцом: таким образом, мы могли бы мгновенно обогатить его другими столбцами.

Мы можем сделать это так:

import pandas as pd # Create a Pandas column as a Pandas data frame df = pd.DataFrame(<'A': [1, 2, 3, 4]>) # Print Pandas data frame print(df) >>> A 0 1 1 2 2 3 3 4

Отличие от предыдущего примера в том, что в этом случае столбец Pandas также имеет имя. В данном случае мы назвали его «А».

ПРИМЕЧАНИЕ: Если мы более внимательно посмотрим на то, что мы здесь сделали, увидим, что мы можем создать фрейм данных Pandas как словарь. Фактически, «A» — это ключ, и он разделён списком значений через двоеточие. Затем и ключи, и значения находятся внутри фигурных скобок.

Создайте столбец Pandas как фрейм данных Pandas, начиная с массива NumPy

Одной из сверхспособностей Pandas является то, что он может «принимать» массивы NumPy в качестве входных значений. Другими словами, мы можем создать фрейм данных, начиная с массива NumPy.

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

Мы можем сделать это так:

import numpy as np import pandas as pd # Create a NumPy array values = np.array([5, 10, 15, 20]) # Transform array into Pandas data frame df = pd.DataFrame(values) # Print data frame print(df) >>> 0 0 5 1 10 2 15 3 20

Как добавить новый столбец во фрейм данных Pandas

Возможность добавить новый столбец во фрейм данных Pandas каким-то образом связана с созданием нового столбца.

Я имею в виду, что сначала нам нужно создать фрейм данных Pandas, затем один столбец Pandas, затем нам нужно добавить столбец в фрейм данных.

В этом случае у нас также есть несколько возможностей сделать это. Давайте посмотрим их все.

Добавление нового столбца во фрейм данных Pandas: стандартный метод

Стандартный метод добавления нового столбца во фрейм данных Pandas — создать фрейм данных, далее создать отдельный столбец, а затем добавить его во фрейм данных.

Мы будем использовать этот метод во всех следующих примерах. Итак, вот как мы можем это сделать:

import pandas as pd # Create a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 4]>) # Add a new column by using a list of values df[‘B’] = [20, 30, 40, 50] # Print data frame print(df) >>> A B 0 1 20 1 2 30 2 3 40 3 4 50

Давайте пошагово разберем, что мы сделали:

  • Мы создали фрейм данных Pandas с помощью метода pd.DataFrame().
  • Мы создали новый столбец df[‘B’], который назвали «B».
  • Мы присвоили значения вновь созданному столбцу со списком чисел.

Добавление нового столбца во фрейм данных Pandas: применение функций

Возможности стандартного метода добавления нового столбца в существующий фрейм данных дают нам возможность создать новый столбец и добавить его в существующий фрейм данных одной строкой кода.

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

import pandas as pd # Create a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 4]>) # Create a column doubling the values of column A df[‘B’] = df[‘A’] * 2 # Apply lambda function to column A to create column C df[‘C’] = df[‘A’].apply(lambda x: x ** 2) # Print data frame print(df) >>> A B C 0 1 2 1 1 2 4 4 2 3 6 9 3 4 8 16

Итак, вот что мы сделали:

  • Мы создали столбец Pandas («A») в качестве фрейма данных.
  • Мы создали столбец «B», удвоив значения столбца «A».
  • Мы создали столбец «C», применив лямбда-функцию к столбцу «A». В частности, в данном случае мы возводим в квадрат значения столбца «А».

Все эти столбцы хранятся вместе в уникальном фрейме данных.

Добавление нового столбца во фрейм данных Pandas: использование Pandas Series или отдельных столбцов Pandas

Конечно, мы можем добавлять столбцы во фрейм данных Pandas, даже если столбцы представляют собой Series или фрейм данных.

Вот как мы можем это сделать:

import pandas as pd # Create a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 4]>) # Create a new column using pd.Series() values = pd.Series([5, 10, 15, 20]) # Create series df[‘B’] = values # Add series to data frame as a column # Print data frame print(df) >>> A B 0 1 5 1 2 10 2 3 15 3 4 20

Итак, в приведённом выше случае мы создали Pandas Series, затем добавили её в существующий фрейм данных, дав ей имя.

В случае столбца Pandas, созданного как фрейм данных, мы имеем следующее:

import pandas as pd # Create a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]>) # Create a Pandas column as a data frame df[‘C’] = pd.DataFrame() # Print data frame print(df) >>> A B C 0 1 5 9 1 2 6 10 2 3 7 11 3 4 8 12

Как переименовать столбец в Pandas

Переименование столбца Pandas (или нескольких) — ещё одна типичная ежедневная задача, которую нам нужно выполнять, но способ выполнения которой мы часто не можем вспомнить.

Для её реализации существуют различные методы. Давайте посмотрим их все!

Как переименовать столбец Pandas: метод rename()

Мы можем переименовать столбец Pandas с помощью метода rename():

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6]>) # Renaming a single column df = df.rename(columns=<'A': 'NewA'>) # Print data frame print(df) >>> NewA B 0 1 4 1 2 5 2 3 6

Итак, мы как будто пользуемся словарём. Внутри метода rename() нам нужно передать аргумент columns и указать фактическое имя и новое имя внутри фигурных скобок, разделив их двоеточием. Так же, как мы делаем в словарях.

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

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6]>) # Rename multiple columns df = df.rename(columns=<'A': 'NewA', 'B': 'NewB'>) # Print data frame print(df) >>> NewA NewB 0 1 4 1 2 5 2 3 6

Как переименовать столбец Pandas: атрибут columns

Чтобы переименовать один столбец в Pandas (или несколько), мы можем использовать атрибут columns следующим образом:

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6]>) # Renaming all columns df.columns = [‘NewA’, ‘NewB’] # Print data frame print(df) >>> NewA NewB 0 1 4 1 2 5 2 3 6

В этом случае атрибут columns даёт нам возможность использовать список строк для переименования столбцов.

Как переименовать столбец Pandas: метод set_axis()

Чтобы переименовать один (или несколько) столбцов в Pandas, мы можем использовать метод set_axis():

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6]>) # Renaming all columns df.set_axis([‘NewA’, ‘NewB’], axis=1, inplace=True) # Print data frame print(df) >>> NewA NewB 0 1 4 1 2 5 2 3 6

Итак, даже в этом случае мы используем список строк для переименования столбцов, но здесь нам также нужно передать параметры axis=1 и inplace=True, поскольку метод set_axis() устанавливает оси с нуля. Это позволяет этому методу переименовывать столбцы.

Как переименовать столбец Pandas: использование лямбда-функций

Когда нам приходится иметь дело со строками, как в случае имён столбцов Pandas, мы можем использовать лямбда-функции для изменения символов текста.

Например, нам может понадобиться переименовать столбцы, просто переведя буквы в нижний регистр. Мы можем сделать это так:

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'COLUMN_1': [1, 2, 3], 'COLUMN_2': [4, 5, 6]>) # Renaming columns using a lambda function df = df.rename(columns=lambda x: x.lower()) # Lowercase column names # Print data frame print(df) >>> column_1 column_2 0 1 4 1 2 5 2 3 6

Как удалить столбец в Pandas

Удаление столбца Pandas (или нескольких) — ещё одна задача, которую нам нужно выполнять очень часто. Например потому, что значения какого-то из столбцов могут оказаться несущественны или иметь значения NULL.

Для выполнения этой задачи у нас есть два метода. Давайте посмотрим на них!

Как удалить столбец в Pandas: метод drop()

Типичный способ удалить столбец в Pandas— использовать метод drop().

Здесь единственное, что нужно иметь в виду, так это решить, хотим ли мы удалить некоторые столбцы и создать новый фрейм данных, или мы хотим удалить их и заменить текущий фрейм данных.

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]>) # Drop one column and substitute the current data frame df = df.drop(‘A’, axis=1) # Print updated data frame print(df) >>> B C 0 4 7 1 5 8 2 6 9

Итак, мы удалили столбец «А», используя метод drop(), указывающий имя столбца, который мы хотели удалить, и ось ( axis=1 в Pandas указывает вертикальное направление).

В данном случае мы решили заменить фрейм данных df. Итак, в конце процесса фрейм данных df больше не имеет столбца «А».

Если же мы хотим создать другой фрейм данных, допустим, мы вызываем id df_2, мы должны сделать это так:

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9], 'D': [10, 11, 12]>) # Drop one column and substitute the current data frame df_2 = df.drop([‘A’, ‘D’], axis=1) # Print new data frame print(df_2) >>> B C 0 4 7 1 5 8 2 6 9

Итак, в этом случае мы удалили два столбца и создали новый фрейм данных со столбцами «B» и «C».

Это может быть полезно, если мы думаем, что нам может понадобиться исходный фрейм данных df в будущем для дальнейших анализов.

Как удалить столбец в Pandas: используйте индекс столбца

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

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9], 'D': [10, 11, 12]>) # Drop one column and append to a new data frame df_2 = df.drop(df.columns[[0, 1]], axis=1) # Print new data frame print(df_2) >>> C D 0 7 10 1 8 11 2 9 12

Итак, в этом случае мы создали новый фрейм данных только со столбцами «C» и «D» и удалили столбцы «A» и «B», используя их индексы.

Помня, что в Python мы начинаем индексацию с 0 (первый столбец имеет индекс 0 и является столбцом «A»), мы должны сказать, что этот метод может быть не оптимальным, если у нас есть десятки столбцов по простой причине: мы должны найти тот (или те), которые мы хотим отбросить, путём их подсчёта, что может привести к ошибкам.

Как найти уникальные значения в столбце Pandas

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

В этом случае у нас есть несколько способов реализовать это. Давайте посмотрим на них.

Как найти уникальные значения в столбце Pandas: используйте метод value_counts() для поиска дубликатов

Если мы хотим увидеть, есть ли в столбце Pandas повторяющиеся значения, и мы также хотим узнать, сколько их, мы можем использовать метод value_counts():

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 1, 3], 'B': [4, 5, 6, 7, 8,], 'C': [7, 8, 9, 10, 11]>) # Find unique values in a Pandas column unique_values = df[‘A’].value_counts() # Print unique values print(unique_values) >>> 1 2 3 2 2 1 Name: A, dtype: int64

Итак, результат здесь говорит о том, что:

  • Имя столбца — «A», а все типы — «int64».
  • У нас есть две единицы.
  • У нас есть две тройки.
  • У нас одна двойка.

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

Как найти уникальные значения в столбце Pandas: используйте метод drop_duplicates() для удаления дубликатов

Если мы хотим удалить повторяющиеся значения в столбце Pandas (потому что мы знаем, что в нём есть дубликаты), мы можем использовать метод drop_duplicates():

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 1, 3], 'B': [4, 5, 6, 7, 8,], 'C': [7, 8, 9, 10, 11]>) # Drop the duplicate values in a Pandas column unique_values = df[‘A’].drop_duplicates() # Print unique values print(unique_values) >>> 0 1 1 2 2 3

Итак, мы удалили дубликаты из столбца «A», создав новый столбец Pandas с именем unique_values.

Как найти уникальные значения в столбце Pandas: изучение фрейма данных

В этот момент вы можете спросить: « Хорошо, если у меня есть большой фрейм данных с десятками столбцов, как я могу знать, что некоторые столбцы имеют дубликаты?»

Хороший вопрос! Что мы можем сделать, так это сначала изучить весь фрейм данных.

Например, мы можем захотеть увидеть, есть ли дубликаты каких-либо столбцов. Мы можем сделать это так:

import pandas as pd # Creating a DataFrame with duplicates df = pd.DataFrame(<'A': [1, 2, 2, 3, 4, 4], 'B': [5, 6, 6, 7, 8, 8]>) # Check if there are duplicates in the DataFrame has_duplicates = df.duplicated().any() # Print the result print(has_duplicates) >>> True

Итак, этот код возвращает «True», если есть столбцы с дубликатами, и «False», если их нет.

А как насчет того, чтобы узнать имена столбцов, которые на самом деле имеют дубликаты? Мы можем сделать это так:

import pandas as pd # Creating a DataFrame with duplicates df = pd.DataFrame(<'A': [1, 2, 2, 3, 4, 4], 'B': [5, 6, 6, 7, 8, 8]>) # Find duplicate rows duplicate_rows = df.duplicated() # Print the duplicate rows print(df[duplicate_rows]) >>> A B 2 2 6 5 4 8

Приведённый выше код показывает:

  • Столбцы с дубликатами.
  • Значения дубликатов.

Теперь мы можем продолжить расследование с помощью метода value_counts() или удалить их с помощью метода drop_duplicates().

Как преобразовать столбец Pandas в список

Преобразование столбца Pandas в список — полезная функция, которая может дать нам возможность «изолировать» все значения из столбца Pandas, чтобы поместить их в список. Затем мы можем делать всё, что нам может понадобиться со списком, которым легко управлять.

У нас есть две возможности сделать это преобразование.

Как преобразовать столбец Pandas в список: метод list()

Метод list() — это встроенная в Python функция, которая преобразует итерируемый объект в список. Мы можем сделать это так:

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 1, 3], 'B': [4, 5, 6, 7, 8,], 'C': [7, 8, 9, 10, 11]>) # Transform Pandas column into a list column_list = list(df[‘B’]) # Print list print(column_list) >>> [4, 5, 6, 7, 8]

Итак, мы легко извлекли наши значения и поместили их в список.

Как преобразовать столбец Pandas в список: метод to_list()

Для достижения того же результата мы можем использовать метод to_list() от Pandas. Но будьте осторожны: он доступен в Pandas версии 1.2.0 или выше .

Мы можем сделать это так:

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [1, 2, 3, 1, 3], 'B': [4, 5, 6, 7, 8,], 'C': [7, 8, 9, 10, 11]>) # Transform Pandas column into a list column_list = df[‘B’].to_list() # Print list print(column_list) >>> [4, 5, 6, 7, 8]

И, конечно же, мы получили тот же результат, что и раньше.

Как отсортировать фрейм данных Pandas по столбцам

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

Мы можем достичь этой цели следующими методами:

Как отсортировать фрейм данных Pandas по столбцам: метод sort_values()

Чтобы отсортировать фрейм данных Pandas по столбцам, мы можем использовать метод sort_values():

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [10, 2, 7, 1, 15], 'B': [4, 2, 6, 28, 8,], 'C': [7, 1, 9, 10, 19]>) # Sort df for A in ascending order df.sort_values(‘A’, ascending=True, inplace=True) # Print sorted data frame print(df) >>> A B C 3 1 28 10 1 2 2 1 2 7 6 9 0 10 4 7 4 15 8 19

Итак, как мы видим, фрейм данных отсортирован по столбцу «А» в порядке возрастания. На самом деле, если мы проверим:

  • Во фрейме исходных данных в столбце «А» цифра 1 стоит на 4-й позиции. В столбце «В» число 28 стоит на четвертой позиции.
  • В отсортированном фрейме данных в столбце «А» число 1 стоит на первой позиции. В столбце «В» число 28 стоит на первой позиции.

Итак, мы сортируем фрейм данных, но не теряем связи между значениями столбцов.

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

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [10, 0, 0, 1, 15], 'B': [4, 2, 6, 28, 8,], 'C': [7, 1, 15, 10, 19]>) # Sort NaNs in the beginning df.sort_values(‘A’, ascending=True, inplace=True) # Print sorted data frame print(df) >>> A B C 1 0 2 1 2 0 6 15 3 1 28 10 0 10 4 7 4 15 8 19

Как отсортировать фрейм данных Pandas по столбцам: метод sort_index()

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

import pandas as pd # Creating a DataFrame df = pd.DataFrame(<'A': [10, 2, 7, 1, 15], 'B': [4, 2, 6, 28, 8,], 'C': [7, 1, 9, 10, 19]>) # Sort data frame for index df.sort_index(inplace=True) # Print sorted data frame print(df) >>> A B C 0 10 4 7 1 2 2 1 2 7 6 9 3 1 28 10 4 15 8 19

И, как мы видим, индексы упорядочены (по возрастанию).

Заключение

В этой статье мы рассмотрели 7 основных операций со столбцами Pandas, которые мы выполняем едва ли не каждый день.

Это руководство поможет вам сэкономить много времени, если вы его сохраните, потому что мы выполняли одни и те же задачи по-разному, так что вам больше не придётся искать их в Google.

Учебник по Pandas для начинающих

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

Что такое pandas?

Pandas — это пакет для манипулирования табличными данными в Python. То есть данными в виде строк и столбцов, также известными как DataFrames. Интуитивно можно представить себе DataFrame как таблицу Excel.

Функциональность pandas включает в себя преобразование данных. Например, при помощи pandas можно сортировать строки и выделять подмножества, вычислять сводную статистику, например, среднее значение, изменять формы фреймов и объединять их.

Pandas хорошо работает с другими популярными пакетами Python для работы с данными, которые часто называют экосистемой PyData:

  • NumPy для численных вычислений
  • Matplotlib, Seaborn, Plotly для визуализации данных
  • scikit-learn для машинного обучения

Для чего используется pandas?

Pandas может использоваться во всех процессах анализа данных. С помощью этой библиотеки можно:

  • Импортировать наборы данных из баз данных, электронных таблиц, CSV-файлов и т.д.
  • Очищать наборы данных, например, устраняя пропущенные значения.
  • Упорядочивать наборы данных путем преобразования их структуры в формат, пригодный для анализа.
  • Агрегировать данные, вычисляя сводную статистику, например, среднее значение столбцов, корреляцию между ними и т.д.
  • Визуализировать наборы данных и открывать новые возможности.

Pandas также имеет функционал для анализа временных рядов и текстовых данных.

Ключевые преимущества пакета pandas

Несомненно, pandas — это мощный инструмент манипулирования данными, обладающий рядом преимуществ:

  • Создан для Python. Python — самый популярный в мире язык для машинного обучения и науки о данных.
  • Меньшая многословность в расчете на единицу операций. Код, написанный на pandas, лаконичен и требует меньшего количества строк для получения желаемого результата.
  • Интуитивно понятное представление данных. Pandas предлагает исключительно интуитивное представление данных, что облегчает их понимание и анализ.
  • Обширный набор функций. Pandas поддерживает широкий набор операций: анализ данных, работа с пропущенными значениями, вычисление статистики, визуализация одномерных и двумерных данных и многое другое.
  • Работа с большими данными. Pandas легко справляется с большими массивами данных. Он обеспечивает скорость и эффективность при работе с наборами данных, содержащих порядка миллионов записей и сотен столбцов, в зависимости от машины.

Установка pandas

Прежде чем приступить к изучению функциональности pandas, давайте сначала установим эту библиотеку. Для этого достаточно воспользоваться командой pip install в терминале.

pip install pandas

Импорт данных в pandas

Чтобы начать работу с pandas, импортируйте пакет pandas Python, как показано ниже. При импорте наиболее распространенным псевдонимом для pandas является pd .

import pandas as pd

Импорт CSV-файлов

Для чтения файла со значениями, разделенными запятыми, т.е. CSV-файлов, используйте функцию read_csv() с указанием пути к CSV-файлу.

df = pd.read_csv("diabetes.csv")

Эта операция чтения загружает файл diabetes.csv для генерации объекта Dataframe — df . В этом учебнике мы расскажем, как работать с такими объектами DataFrame.

От редакции Pythonist: рекомендуем также почитать статью «Как создать Pandas DataFrame».

Импорт текстовых файлов

Чтение текстовых файлов аналогично чтению CSV-файлов. Единственным нюансом является то, что необходимо указать разделитель с помощью аргумента sep , как показано ниже.

Аргумент sep (от англ. separator — разделитель) представляет символ, используемый для разделения строк в DataFrame. Обычно используются запятая ( sep=»,» ), пробел ( sep=»\s» ), табуляция ( sep=»\t» ) и двоеточие ( sep=»:» ).

Здесь \s представляет собой один символ пробела:

df = pd.read_csv("diabetes.txt", sep="\s")

Импорт файлов Excel (один лист)

Чтение файлов Excel (как XLS, так и XLSX) осуществляется с помощью функции read_excel() , использующей в качестве входных данных путь к файлу.

df = pd.read_excel('diabetes.xlsx')

Можно добавить и другие аргументы, например header ⁣, чтобы указать, какая строка становится заголовком DataFrame. По умолчанию он имеет значение 0 , которое обозначает первую строку в качестве заголовков или имен столбцов. В аргументе names можно также указать имена столбцов в виде списка. Аргумент index_col (по умолчанию None ) может быть использован, если файл содержит индекс строк.

Примечание. В pandas DataFrame или Series индекс — это идентификатор, указывающий на местоположение строки или столбца в pandas DataFrame. В двух словах, индекс маркирует строку или столбец DataFrame и позволяет получить доступ к ним по их индексам (об этом мы поговорим позже). Индекс строки DataFrame может представлять собой диапазон (например, от 0 до 303), временной ряд (даты или временные метки), уникальный идентификатор (например, employee_ID в таблице employees) или другие типы данных. Для столбцов это обычно строка, обозначающая имя столбца.

Импорт файлов Excel (несколько вкладок)

Чтение файлов Excel с несколькими вкладками не имеет особых отличий. Необходимо только указать один дополнительный аргумент — sheet_name . В качестве sheet_name можно передать либо имя вкладки (строку), либо позицию вкладки (целое число).

Обратите внимание, что в Python используется 0-индексация, поэтому доступ к первой вкладке можно получить при sheet_name=0 .

# Выбираем вторую вкладку, но пишем 1, так как индексация начинается с нуля df = pd.read_excel('diabetes_multi.xlsx', sheet_name=1)

Импорт JSON-файла

Аналогично функции read_csv() , для файлов типа JSON можно использовать функцию read_json() с именем файла JSON в качестве аргумента. Приведенный ниже код считывает JSON-файл с диска и создает объект DataFrame df .

df = pd.read_json("diabetes.json")

Если вы хотите узнать больше об импорте данных в pandas, ознакомьтесь с этой шпаргалкой по импорту различных типов файлов в Python.

Вывод данных в pandas

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

Вывод DataFrame в CSV-файл

Фрейм данных pandas (в нашем учебнике — df ) сохраняется в CSV-файл с помощью метода .to_csv() . В качестве аргументов указываются имя файла с путем к нему и index . При этом index=True подразумевает запись индекса DataFrame.

df.to_csv("diabetes_out.csv", index=False)

Вывод DataFrame в файл JSON

Экспорт объекта датафрейма в JSON происходит при помощи метода .to_json() :

df.to_json("diabetes_out.json")

Примечание: JSON-файл хранит табличный объект типа DataFrame в виде пары ключ-значение. Поэтому в JSON-файле можно наблюдать повторяющиеся заголовки столбцов.

Вывод DataFrame в текстовый файл

Для вывода датафрейма в текстовый файл можно вызвать команду .to_csv() , как при записи в CSV. Единственное отличие состоит в том, что формат выходного файла — .txt , и необходимо указать разделитель с помощью аргумента sep .

df.to_csv('diabetes_out.txt', header=df.columns, index=None, sep=' ')

Вывод DataFrame в файл Excel

Чтобы сохранить датафрейм в файл формата «.xls» или «.xlsx» , вызовите функцию .to_excel() из объекта DataFrame.

df.to_excel("diabetes_out.xlsx", index=False)

Просмотр DataFrames

После считывания табличных данных в виде DataFrame нам нужно их как-то просмотреть. Можно просмотреть либо небольшую выборку из набора данных, либо сводку данных в виде итоговой статистики.

Как просмотреть данные с помощью .head() и .tail()

С помощью методов .head() и .tail() можно просмотреть несколько первых или несколько последних строк DataFrame соответственно. Количество строк можно задать через аргумент n (по умолчанию — 5 ).

df.head()

Первые пять строк DataFrame

df.tail(n = 10)

Первые 10 строк DataFrame

Понимание данных с помощью метода .describe()

Метод .describe() выводит сводную статистику всех числовых столбцов, такую как количество, среднее значение, стандартное отклонение, диапазон и квартили.

df.describe()

Получение сводной статистики с помощью функции .describe()

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

Вы также можете изменить квартили с помощью аргумента percentiles . Здесь, например, мы рассматриваем 30%, 50% и 70% процентили числовых столбцов в DataFrame df .

df.describe(percentiles=[0.3, 0.5, 0.7])

Получение сводной статистики с определенными значениями percentiles

С помощью аргумента include можно также выделить определенные типы данных в итоговом выводе. Здесь, например, мы суммируем только столбцы с типом данных integer .

df.describe(include=[int])

Получение сводной статистики только по целочисленным столбцам

Аналогичным образом можно исключить определенные типы данных, используя аргумент exclude .

df.describe(exclude=[int])

Получение сводной статистики только для нецелых столбцов

Часто практикам удобно просматривать такую статистику, транспонируя ее с помощью атрибута .T .

df.describe().T

Транспонирование сводной статистики с помощью .T

Понимание данных с помощью метода .info()

Метод .info() — это быстрый способ посмотреть типы данных, пропущенные значения и размер данных в DataFrame. Здесь мы устанавливаем аргумент show_counts равным True , что дает возможность увидеть общее количество не пропущенных значений в каждом столбце.

Мы также устанавливаем значение memory_usage=True . memory_usage показывает общее использование памяти элементами DataFrame. Если для параметра verbose установлено значение True , то выводится полная сводка из .info() .

df.info(show_counts=True, memory_usage=True, verbose=True)

Понимание данных с помощью .shape

Количество строк и столбцов фрейма можно определить с помощью атрибута .shape . Он возвращает кортеж (строка, столбец) и может быть проиндексирован для получения только строк, а в качестве выходных данных учитываются только столбцы.

df.shape # Получить число строк и столбцов df.shape[0] # Получить только число строк df.shape[1] # Получить только число столбцов
(768,9) 768 9

Получить все столбцы и имена столбцов

Вызов атрибута .columns объекта DataFrame возвращает имена столбцов в виде объекта Index . Напомним, что индекс pandas — это адрес/метка строки или столбца.

df.columns

Он может быть преобразован в список с помощью функции list() .

list(df.columns)

Проверка отсутствующих значений в pandas с помощью функции .isnull()

В нашем примере DataFrame нет ни одного пропущенного значения. Давайте введем несколько, чтобы было интереснее.

Метод .copy() создает копию исходного DataFrame. Это делается для того, чтобы любые изменения в копии не отражались на исходном DataFrame. С помощью метода .loc (будет рассмотрен позже) можно установить в столбце Pregnancies со второй по пятую строки значения NaN , которые обозначают отсутствующие значения.

df2 = df.copy() df2.loc[2:5,'Pregnancies'] = None df2.head(7)

Видно, что теперь строки со 2 по 5 являются NaN

Проверить, отсутствует ли элемент в DataFrame, можно с помощью метода .isnull() .

df2.isnull().head(7)

Поскольку часто полезнее знать количество отсутствующих данных, можно комбинировать .isnull() с .sum() для подсчета количества нулей в каждом столбце.

df2.isnull().sum()
Pregnancies 4 Glucose 0 BloodPressure 0 SkinThickness 0 Insulin 0 BMI 0 DiabetesPedigreeFunction 0 Age 0 Outcome 0 dtype: int64

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

df2.isnull().sum().sum() # Вывод: # 4

Нарезка и извлечение данных в pandas

Пакет pandas предлагает несколько способов выделения подмножества, фильтрации и выделения данных во фреймах DataFrames. Здесь мы рассмотрим наиболее распространенные способы.

Выделение одного столбца с помощью []

Вы можете выделить один столбец, используя квадратные скобки [ ] с именем столбца в них. На выходе получается объект pandas Series .

Серия pandas — это одномерный массив, содержащий данные любого типа, включая целые числа, числа с плавающей точкой, строки, булевы значения, объекты Python и т.д. DataFrame состоит из множества серий, которые выступают в качестве столбцов.

df['Outcome']

Изолирование одного столбца в pandas

Изолирование двух или более столбцов с помощью [[]]

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

df[['Pregnancies', 'Outcome']]

Изолирование двух столбцов в pandas

Изолирование одного ряда с помощью []

Выделить один ряд можно путем передачи булевого ряда с одним значением True . В приведенном ниже примере возвращается второй ряд с index=1 . Здесь .index возвращает метки строк DataFrame, а сравнение превращает их в булевский одномерный массив.

df[df.index==1]

Изолирование одной строки в pandas

Выделение двух или более строк с помощью []

Аналогичным образом можно вернуть два или более ряда, используя метод .isin() вместо оператора == .

df[df.index.isin(range(2,10))]

Изолирование определенных строк в pandas

Использование .loc[] и .iloc[] для извлечения строк

С помощью .loc[] и .iloc[] («местоположение» и «целочисленное местоположение») можно получить определенные строки по меткам или условиям.

В .loc[] для указания на строку, столбец или ячейку используется метка, а в .iloc[] — числовая позиция. Чтобы понять разницу между ними, изменим созданный ранее индекс df2 .

df2.index = range(1,769)

В приведенном ниже примере вместо DataFrame возвращается pandas Series . 1 представляет собой индекс ряда (метка), а 1 в .iloc[] — позицию ряда (первый ряд).

df2.loc[1]
Pregnancies 6.000 Glucose 148.000 BloodPressure 72.000 SkinThickness 35.000 Insulin 0.000 BMI 33.600 DiabetesPedigreeFunction 0.627 Age 50.000 Outcome 1.000 Name: 1, dtype: float64
df2.iloc[1]
Pregnancies 1.000 Glucose 85.000 BloodPressure 66.000 SkinThickness 29.000 Insulin 0.000 BMI 26.600 DiabetesPedigreeFunction 0.351 Age 31.000 Outcome 0.000 Name: 2, dtype: float64

Вы также можете получить несколько строк, указав диапазон в квадратных скобках.

df2.loc[100:110]

Изолирование строк в pandas с помощью .loc[]

df2.iloc[100:110]

Изолирование строк в pandas с помощью .iloc[]

Вы также можете получать подмножество с помощью .loc[] и .iloc[] , используя список вместо диапазона.

df2.iloc[[100, 200, 300]]

Изолирование строк с помощью списка в pandas с помощью .iloc[]

Можно также выбирать конкретные столбцы вместе со строками. В этом .iloc[] отличается от .loc[] — ему требуется расположение столбцов, а не их метки.

df2.loc[100:110, ['Pregnancies', 'Glucose', 'BloodPressure']]

Изолирование столбцов в pandas с помощью .loc[]

df2.iloc[100:110, :3]

Изолирование столбцов с помощью .iloc[]

Для ускорения работы можно передавать начальный индекс строки в виде диапазона.

df2.loc[760:, ['Pregnancies', 'Glucose', 'BloodPressure']]

Изолирование столбцов и строк в pandas с помощью .loc[]

df2.iloc[760:, :3]

Изолирование столбцов и строк в pandas с помощью .iloc[]

Обновить/изменить определенные значения можно с помощью оператора присваивания = .

df2.loc[df['Age']==81, ['Age']] = 80

Условная нарезка (данные, удовлетворяющие определенным условиям)

Pandas позволяет фильтровать данные по условиям над значениями строк/столбцов. Например, приведенный ниже код выбирает строку, в которой значение артериального давления равно 122 .

Здесь мы выделяем строки с помощью скобок [] , как это было показано в предыдущих разделах. Однако вместо индексов строк или имен столбцов мы вводим условие, при котором столбец BloodPressure равен 122. Обозначим это условие через df.BloodPressure == 122 .

df[df.BloodPressure == 122]

Изолирование строк на основе условия в pandas

В приведенном ниже примере извлекаются все строки, в которых Outcome равен 1. Здесь df.Outcome выбирает этот столбец, df.Outcome == 1 возвращает серию булевых значений, определяющих, какие Outcomes равны 1, затем [] берет подмножество df , в котором эта булева серия равна True .

df[df.Outcome == 1]

Изолирование строк на основе условия в pandas

Для проведения сравнений можно использовать оператор > . В приведенном ниже коде для всех записей, в которых давление крови больше 100, получены значения Pregnancies , Glucose и BloodPressure .

df.loc[df['BloodPressure'] > 100, ['Pregnancies', 'Glucose', 'BloodPressure']]

Изолирование строк и столбцов на основе условия в pandas

Очистка данных с помощью pandas

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

Для иллюстрации нескольких примеров использования очистки данных воспользуемся приведенным ранее DataFrame df2 с четырьмя пропущенными значениями. Напомним, как можно посмотреть количество пропущенных значений в DataFrame:

df2.isnull().sum()
Pregnancies 4 Glucose 0 BloodPressure 0 SkinThickness 0 Insulin 0 BMI 0 DiabetesPedigreeFunction 0 Age 0 Outcome 0 dtype: int64

Работа с недостающими данными

Техника № 1: отбрасывание недостающих значений

Одним из способов решения проблемы недостающих данных является их отбрасывание. Это особенно полезно в тех случаях, когда данных много и потеря небольшой части не повлияет на последующий анализ. Для этого можно использовать метод .dropna() , как показано ниже. Здесь мы сохраняем результаты работы метода .dropna() в DataFrame df3 .

df3 = df2.copy() df3 = df3.dropna() df3.shape
(764, 9) # this is 4 rows less than df2

Аргумент axis позволяет указать, отбрасываются ли строки или столбцы с отсутствующими значениями. axis по умолчанию удаляет строки, содержащие NaN. Если использовать axis=1 , то будут удалены столбцы с одним или несколькими значениями NaN.

Также обратите внимание на то, что мы используем аргумент inplace=True, который позволяет не сохранять вывод .dropna() в новый DataFrame.

df3 = df2.copy() df3.dropna(inplace=True, axis=1) df3.head()

Удаление отсутствующих данных в pandas

Вы также можете отбросить как строки, так и столбцы с отсутствующими значениями, установив для аргумента how значение ‘all’ .

df3 = df2.copy() df3.dropna(inplace=True, how='all')
Техника № 2: замена отсутствующих значений

Вместо отбрасывания можно заменить пропущенные значения суммарной статистикой или конкретным значением (в зависимости от конкретного случая).

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

Заменить недостающие данные средним значением строки или столбца можно с помощью приведенного ниже кода.

df3 = df2.copy() # Get the mean of Pregnancies mean_value = df3['Pregnancies'].mean() # Fill missing values using .fillna() df3 = df3.fillna(mean_value)

Работа с дублирующимися данными

Давайте добавим несколько дубликатов к исходным данным, чтобы узнать, как устранить дубликаты в DataFrame. Здесь мы используем метод .concat() для конкатенации строк фрейма df2 во фрейм df2 , добавляя совершенные дубликаты каждой строки в df2 .

df3 = pd.concat([df2, df2]) df3.shape # Вывод: # (1536, 9)

Удалить все дублирующиеся строки (по умолчанию) из DataFrame можно с помощью метода .drop_duplicates() .

df3 = df3.drop_duplicates() df3.shape # Вывод: # (768, 9)

Переименование столбцов

Распространенной задачей очистки данных является переименование столбцов. С помощью метода .rename() можно использовать columns в качестве аргумента для переименования конкретных столбцов.

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

df3.rename(columns = , inplace = True) df3.head()

Переименование столбцов в pandas

Можно также непосредственно присвоить DataFrame имена столбцов в виде списка.

df3.columns = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DPF', 'Age', 'Outcome', 'STF'] df3.head()

Переименование столбцов в pandas

Анализ данных в pandas

Основное преимущество pandas заключается в возможности быстрого анализа данных. В этом разделе мы остановимся на наборе методов анализа, которые можно использовать в pandas.

Операторы суммирования (среднее, мода, медиана)

Как вы видели ранее, среднее значение каждого столбца можно получить с помощью метода .mean() .

df.mean()

Вывод среднего значения столбцов в pandas

Аналогично можно вычислить моду — с помощью метода .mode() .

df.mode()

Вывод режима работы столбцов в pandas

С помощью метода .median() вычисляется медиана каждого столбца:

df.median()

Вывод медианы столбцов в pandas

Создание новых столбцов на основе существующих

Pandas обеспечивает быстрые и эффективные вычисления путем объединения двух или более столбцов как скалярных переменных.

Приведенный ниже код делит каждое значение в столбце Glucose на соответствующее значение в столбце Insulin для вычисления нового столбца с именем Glucose_Insulin_Ratio .

df2['Glucose_Insulin_Ratio'] = df2['Glucose']/df2['Insulin'] df2.head()

Создание нового столбца из существующих столбцов в pandas

Подсчет с помощью функции .value_counts()

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

Для подсчета значений категорий можно использовать метод .value_counts() . Здесь, например, мы подсчитываем количество наблюдений, в которых Outcome является диабетическим (1), и количество наблюдений, в которых Outcome не является диабетическим (0).

df['Outcome'].value_counts()

Использование .value_counts() в pandas

Добавление аргумента normalize возвращает пропорции вместо абсолютных значений.

df['Outcome'].value_counts(normalize=True)

Использование .value_counts() в pandas с нормализацией

Отключить автоматическую сортировку результатов можно с помощью аргумента sort (по умолчанию True ). По умолчанию сортировка производится на основе подсчетов в порядке убывания.

df['Outcome'].value_counts(sort=False)

Использование функции .value_counts() в pandas с сортировкой

df.value_counts(subset=['Pregnancies', 'Outcome'])

Использование .value_counts() в pandas при подмножестве столбцов

Агрегация данных с помощью .groupby()

Pandas позволяет агрегировать значения, группируя их по определенным значениям столбцов. Это можно сделать, сочетая метод .groupby() с выбранным вами методом суммирования.

Приведенный ниже код отображает среднее значение каждого из числовых столбцов, сгруппированных по критерию Outcome .

df.groupby('Outcome').mean()

Агрегирование данных по одному столбцу в pandas

Функция .groupby() позволяет группировать данные более чем по одному столбцу, передавая список имен столбцов, как показано ниже.

df.groupby(['Pregnancies', 'Outcome']).mean()

Агрегация данных по двум столбцам в pandas

Вместе с .groupby() можно использовать любой метод подведения итогов, включая .min() , .max() , .mean() , .median() , .sum() , .mode() и др.

Pivot tables

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

Приведенный ниже код выбирает строки как уникальные значения Pregnancies , значения столбцов — как уникальные значения Outcome , а ячейки — как среднее значение BMI в соответствующей группе.

Например, для Pregnancies = 5 и Outcome = 0 среднее значение BMI оказывается равным 31,1.

pd.pivot_table(df, values="BMI", index='Pregnancies', columns=['Outcome'], aggfunc=np.mean)

Агрегирование данных с помощью pivoting в pandas

Визуализация данных в pandas

Pandas предоставляет удобные обертки для функций построения графиков Matplotlib , которые позволяют легко визуализировать ваши DataFrames. Ниже мы рассмотрим, как с помощью pandas выполнять распространенные визуализации данных.

Линейные графики

Pandas позволяет строить графики взаимосвязей между переменными с помощью линейных диаграмм. Ниже показан линейный график зависимости индекса массы тела и глюкозы от индекса ряда.

df[['BMI', 'Glucose']].plot.line()

Базовый линейный график с помощью pandas

C помощью аргумента color можно указать цвета:

df[['BMI', 'Glucose']].plot.line(figsize=(20, 10), color=)

Базовый линейный график с помощью pandas, с пользовательскими цветами

df.plot.line(subplots=True)

Подплоты для линейных графиков в pandas

Столбчатые диаграммы

Для дискретных столбцов можно использовать гистограмму над количеством категорий для визуализации их распределения. Ниже представлена визуализация переменной Outcome с бинарными значениями.

df['Outcome'].value_counts().plot.bar()

Гистограммы в pandas

Усиковые диаграммы

Квартильное распределение непрерывных переменных может быть визуализировано с помощью усиковой диаграммы. Приведенный ниже код позволяет создать боксплот с помощью pandas.

df.boxplot(column=['BMI'], by='Outcome')

Боксплоты в pandas

Pandas FAQs

Что такое pandas в Python?

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

Зачем мне изучать pandas?

Если вы работаете с данными используя Python, то изучение pandas является практически обязательным. Он упрощает процесс обработки и анализа данных, позволяя сосредоточиться на извлечении информации. Независимо от того, работаете ли вы с небольшими наборами данных или с большими массивами, pandas облегчит вам жизнь благодаря своей скорости, гибкости и удобным структурам данных.

Как установить pandas?

Для установки pandas вам потребуется Python и pip (программа установки пакетов Python). Чтобы установить pandas, нужно ввести команду pip install pandas . Если вы используете блокнот Jupyter в среде, подобной Anaconda, pandas будет предустановлен.

Каковы основные структуры данных в pandas?

Две основные структуры данных в pandas — это Series и DataFrame. Серия — это, по сути, столбец, а DataFrame — это многомерная таблица, состоящая из набора серий. Эти структуры являются гибкими, то есть в них могут храниться данные различных типов (например, целое число, число с плавающей точкой, строка).

Подойдет ли pandas для работы с большими массивами данных?

Да, pandas является отличным выбором для работы с большими наборами данных. Он разработан для эффективного анализа данных, включая их большие массивы.

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

Как импортировать данные в pandas?

Pandas может читать данные из различных форматов файлов, таких как CSV, Excel, SQL-базы данных, JSON и многое другое. Для импорта данных из соответствующих типов файлов используются команды pd.read_csv() , pd.read_excel() , pd.read_sql() и pd.read_json() . Все эти команды возвращают объект DataFrame, с которым вы можете работать с помощью библиотеки pandas.

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *