Pandas — это библиотека Python, предназначенная для обработки и анализа данных. Два основных объекта, которые предоставляет Pandas для хранения данных, — это DataFrame и Series.
Определение: Series — это одномерный маркированный массив, который может содержать данные любого типа (целые числа, строки, вещественные числа, объекты Python и так далее). Он похож на столбец в таблице или на список в Python.
import pandas as pd
# Из списка
s = pd.Series([1, 3, 5, 7, 9])
print(s)
# 0 1
# 1 3
# 2 5
# 3 7
# 4 9
# dtype: int64
s.values
: Массив значений Series. Возвращает NumPy массив.s = pd.Series([1, 2, 3])
print(s.values) # [1 2 3]
s.index
: Индексы Series. Может содержать числа, строки или даты.s = pd.Series([1, 2, 3])
print(s.index) # RangeIndex(start=0, stop=3, step=1)
s.dtype
: Тип данных элементов Series. Возвращает, например, int64
, float64
, object
(для строк).s = pd.Series([1, 2, 3])
print(s.dtype) # int64
s.shape
: Форма Series, которая показывает количество элементов.s = pd.Series([1, 2, 3])
print(s.shape) # (3,)
s.size
: Общее количество элементов в Series.s = pd.Series([1, 2, 3])
print(s.size) # 3
s.name
: Имя Series. Может быть полезным, когда Series становится столбцом DataFrame.s = pd.Series([1, 2, 3])
s.name = "Numbers"
print(s.name) # Numbers
print(s[2]) # выбор элемента по индексу
print(s[1:4]) # срез данных
DataFrame — это двумерная таблица с метками на строках и столбцах. Его можно представить как набор объектов Series, где каждый Series — это столбец.
import pandas as pd
# Из словаря
data = {
"Name": ["Anna", "Bob", "Charlie"],
"Age": [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
# Name Age
# 0 Anna 25
# 1 Bob 30
# 2 Charlie 35
df.values
: Массив значений DataFrame. Возвращает двумерный NumPy массив.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.values)
# [[1 3]
# [2 4]]
df.index
: Индексы строк DataFrame.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.index) # RangeIndex(start=0, stop=2, step=1)
df.columns
: Индексы столбцов DataFrame.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.columns) # Index(['A', 'B'], dtype='object')
df.dtypes
: Типы данных столбцов DataFrame. Возвращает Series, где индексами являются названия столбцов, а значениями — типы данных.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.dtypes)
# A int64
# B int64
# dtype: object
df.shape
: Форма DataFrame, показывающая количество строк и столбцов.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.shape) # (2, 2)
df.size
: Общее количество элементов в DataFrame.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.size) # 4
df.T
: Транспонирование DataFrame (меняет строки и столбцы местами).df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.T)
# 0 1
# A 1 2
# B 3 4
df.info()
: Метод, который предоставляет краткий обзор данных в DataFrame, включая количество ненулевых значений и типы данных.df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df.info()
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 2 entries, 0 to 1
# Data columns (total 2 columns):
# # Column Non-Null Count Dtype
# --- ------ -------------- -----
# 0 A 2 non-null int64
# 1 B 2 non-null int64
# dtypes: int64(2)
# memory usage: 160.0 bytes
import pandas as pd
data = {
"Name": ["Anna", "Bob", "Charlie"],
"Age": [25, 30, 35]
}
df = pd.DataFrame(data)
print(df['Name']) # выбор столбца по имени
print(df.iloc[0]) # выбор строки по индексу
print(df.loc[0, 'Name']) # выбор элемента по индексу строки и имени столбца
import pandas as pd
data = {
"Name": ["Anna", "Bob", "Charlie"],
"Age": [25, 30, 35]
}
df = pd.DataFrame(data)
# Добавление столбца
df['City'] = ['Moscow', 'Paris', 'London']
# Удаление столбца
df.drop('Age', axis=1, inplace=True)
Когда вы выбираете столбец из DataFrame, вы работаете с объектом Series:
import pandas as pd
data = {
"Name": ["Anna", "Bob", "Charlie"],
"Age": [25, 30, 35]
}
df = pd.DataFrame(data)
age_series = df['Age']
print(type(age_series)) # <class 'pandas.core.series.Series'>
Элементы Series сохраняют свои индексы, что позволяет легко взаимодействовать с DataFrame:
import pandas as pd
data = {
"Name": ["Anna", "Bob", "Charlie"],
"Age": [25, 30, 35]
}
df = pd.DataFrame(data)
age_series = df['Age']
df['Age'] = age_series * 2 # удвоим возраст
Основные характеристики:
Преимущества:
.mean()
, .sum()
и др.).Основные характеристики:
Преимущества:
.fillna()
или .dropna()
.Series и DataFrame — это фундаментальные структуры данных в библиотеке Pandas, с которыми вы будете работать почти всегда при анализе данных. Освоив их, вы сможете с легкостью обрабатывать, анализировать и визуализировать данные, не углубляясь в сложные детали реализации.
Содержание: