Глава 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()
, которые помогают очищать, преобразовывать или кодировать категориальные переменные.