Глава 1: Машинное обучение

5. Панды

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

5.1. Структуры данных

Pandas предлагает две основные структуры данных: Series и DataFrame.

  • Серия: одномерный помеченный массив, способный хранить данные любого типа. Он похож на массив NumPy, но обеспечивает большую гибкость с помеченными индексами.
  • DataFrame: двумерная табличная структура данных, напоминающая электронную таблицу или таблицу SQL. Он состоит из строк и столбцов, где каждый столбец может содержать разные типы данных.

5.2. Ключевые методы:

  • Загрузка данных.Pandas может считывать данные из различных источников, включая файлы CSV, электронные таблицы Excel, базы данных SQL и т. д., используя такие функции, как pd.read_csv(), pd.read_excel(), pd.read_sql(), pd.read_json() и pd.read_html().
  • Исследование данных. Используйте такие методы, как head(), tail() и info(), чтобы получить краткий обзор данных, включая первую и последнюю строки и типы данных каждого столбца.
  • Анализ данных. Проанализируйте свой DataFrame с помощью таких методов, как groupby(['Column',...]) ,describe() ,rolling(),ewm().mean(), чтобы сгруппировать данные, описать их, показать скользящее среднее или использовать экспоненциально-взвешенную функцию.

Примечание: здесь представлено математическое уравнение экспоненциальной взвешенной функции.

  • Выбор данных. Доступ к данным в DataFrame и управление ими с использованием методов индексации, срезов и логического индексирования, а также таких функций, как loc[] и iloc[].
  • Фигуры данных. Используйте такие методы, как shape, ndim и size, чтобы получить краткий обзор формы, размеров и размера вашего DataFrame.
  • Очистка данных: обработайте отсутствующие данные с помощью dropna() или заполните отсутствующие значения с помощью fillna(). Удалите повторяющиеся строки, используя drop_duplicates(), или удалите строку или столбец, используя drop().
  • Агрегация данных. Выполняйте операции агрегации, такие как groupby(), pivot_table() и agg(), для суммирования данных на основе определенных критериев.
  • Преобразование данных. Применяйте преобразования к данным с помощью таких функций, как apply(), map() и replace(), которые помогают очищать, преобразовывать или кодировать категориальные переменные.

Синтаксис:

import pandas as pd
# importing the dataset and putting it in a dataframe
df = pd.read_csv('/Path_TO/FileName.csv') 
# note that you can use any type of file you want, check the documentation to see more.

# df.method()

5.3. Основные методы

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

  • удалить : удалить одну или несколько строк/столбцов.
df=data.drop(['name','sibsp','ticket'
              ,'parch','fare','cabin',
              'embarked','boat','body','home.dest'],axis=1) 
# axis = 1 implies we're deleting the columns
  • describe: описывает данные вашего DataFrame.
df.describe()

Обратите внимание, что 1309 человек.

  • dropna : удалить строку/столбец, если есть NaN (не число).
df=df.dropna(axis=0) # drop any row that contains NaN
df.shape

Теперь вы можете ясно видеть, что осталось только 1046 человек, потому что мы удалили строки, содержащие значение NaN.

  • groupby : сгруппировать данные по указанным столбцам.
data.groupby(['sex','pclass']).mean() 
// group by sex and class

  • слияние :слияние DataFrame аналогично объединению в SQL, вы можете сделать это как внутреннее, внешнее, левое или правое слияние.
# Loading DataSets
btc=pd.read_csv('BTC-USD.csv',index_col='Date',parse_dates=True)
eth=pd.read_csv('ETH-USD.csv',index_col='Date',parse_dates=True)

# Merging the DataFrames
btc_eth=pd.merge(btc,eth,on='Date',how='inner',suffixes=('_btc','_eth'))
# how = 'inner' or 'outer' or 'right' or 'left'

# Show the result
btc_eth[['Close_btc','Close_eth']].plot(subplots=True,label='BTC_ETH')

  • Преобразование данных. Применяйте преобразования к данным с помощью таких функций, как apply(), map() и replace(), которые помогают очищать, преобразовывать или кодировать категориальные переменные.