Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте
В предыдущей статье я подробно объяснил панд в виде картинок и текстов.groupby
,merge
а такжеmap
,apply
,applymap
Если вы освоите эти принципы, а затем сделаете на их основе некоторые расширения, то в принципе сможете решать большинство более сложных операций по обработке данных. Вот несколько статей, и друзья, которые хотят вернуться, могут пересмотреть их:
Панды обрабатывают данные по трем осям, сколько вы знаете?
Анализ данных Pandas - подробное объяснение очень простого в использовании Groupby
Обработка данных Pandas — подробное объяснение слияния метода объединения данных
Стократное улучшение оптимизации производительности Pandas, пусть ваши панды летают!
В этой статье рассматриваются некоторые из наиболее частых применений в реальном использовании.Здесь необходимо подчеркнуть, чтоНовичкам не рекомендуется грызть все методы в Pandas, это слишком неэффективно и многие методы в принципе бесполезны, а после грызения легко забыть. Правильный способ — сначала разобраться с часто используемыми методами, затем найти проект, с которого можно приступить непосредственно к работе, а затем проверить официальную документацию, если существующие методы не могут с этим справиться.
С помощью метода "искусственного интеллекта" я отсеял из официальных документов некоторые наиболее часто используемые методы. Их более 20. Новички могут сначала попробовать разобраться в них. Чтобы не читать слишком много, в этой статье сначала будут представлены 10.
Данные, используемые для демонстрации, следующие:
In [15]: data
Out[15]:
company salary age
0 NaN 43 21
1 A 8 41
2 A 28 26
3 C 42 28
4 A 33 26
5 C 20 18
6 A 48 43
7 B 25 23
8 B 39 18
.head()
Объект:Series
иDataFrame
Основное использование: возвращениеDataFrame
Первые N строк . Когда объем данных большой, используйте.head()
Получите краткий обзор данных.
использование:
#默认返回前5行,N可以自行设定
In [16]: data.head()
Out[16]:
company salary age
0 NaN 43 21
1 A 8 41
2 A 28 26
3 C 42 28
4 A 33 26
.info()
Объект:Series
иDataFrame
Основная цель: вывод базовой информации об используемых данных, включая типы данных индексов и столбцов, а также занимаемый объем памяти.
использование:
In [17]: data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9 entries, 0 to 8
Data columns (total 3 columns):
company 8 non-null object
salary 9 non-null int32
age 9 non-null int32
dtypes: int32(2), object(1)
memory usage: 224.0+ bytes
.describe()
Объект:Series
иDataFrame
Основное использование: создание описательной статистической сводки, включая подсчет и процентили, помогает понять приблизительное распределение данных.
использование:
# 默认生成数值列的描述性统计
# 使用 include = 'all'生成所有列
In [18]: data.describe()
Out[18]:
salary age
count 9.000000 9.000000
mean 31.777778 27.111111
std 12.804079 9.143911
min 8.000000 18.000000
25% 25.000000 21.000000
50% 33.000000 26.000000
75% 42.000000 28.000000
max 48.000000 43.000000
.value_counts()
Объект:Series
Основное использование: подсчитайте количество каждого класса в категориальной переменной, такой какcompany
Сколько человек в каждой компании
Основные параметры:
-
нормализовать (boolean, default False)
Вернуть пропорцию каждой категории
-
Сортировать (boolean, default True)
Сортировать ли статистические результаты
-
по возрастанию (boolean, default False)
Сортировать ли в порядке возрастания
использование:
In [19]: data['company'].value_counts()
Out[19]:
A 4
B 2
C 2
Name: company, dtype: int64
# 返回占比情况
In [20]: data['company'].value_counts(normalize=True)
Out[20]:
A 0.50
B 0.25
C 0.25
Name: company, dtype: float64
# 升序排列
In [21]: data['company'].value_counts(ascending=True)
Out[21]:
C 2
B 2
A 4
Name: company, dtype: int64
.isna()
Объект:Series
иDataFrame
Основная цель: определить, являются ли данные пропущенным значением, если да, вернутьTrue
, иначе возвратFalse
использование:
In [22]: data.isna()
Out[22]:
company salary age
0 True False False
1 False False False
2 False False False
3 False False False
4 False False False
5 False False False
6 False False False
7 False False False
8 False False False
.any()
Объект:Series
иDataFrame
Основное использование: в большинстве случаев объем данных велик, и их невозможно напрямуюisna()
Последний, чтобы увидеть, является ли это недостающим значением.any()
иisna()
Его можно использовать в сочетании, чтобы определить, есть ли в столбце пропущенные значения.
использование:
In [23]: data.isna().any()
Out[23]:
company True
salary False
age False
dtype: bool
.dropna()
Объект:Series
иDataFrame
Основная цель: удалить данные с пропущенными значениями
использование:
In [24]: data.dropna()
Out[24]:
company salary age
1 A 8 41
2 A 28 26
3 C 42 28
4 A 33 26
5 C 20 18
6 A 48 43
7 B 25 23
8 B 39 18
.fillna()
Объект:Series
иDataFrame
Основное использование: заполнить недостающие данные
Основные параметры:
-
ценность (scalar, dict, Series, or DataFrame)
значение для заполнения пропущенных значений
-
метод ({'backfill', 'bfill', 'pad', 'ffill', None}, по умолчанию None)
Обычно используется метод заполнения пропущенных значений:
bfill
Заполните следующие значения,ffill
заполнить предыдущим значением -
на месте (boolean, default False)
Воздействовать ли на исходный объект
использование:
In [26]: data.fillna('B')
Out[26]:
company salary age
0 B 43 21
1 A 8 41
2 A 28 26
3 C 42 28
4 A 33 26
5 C 20 18
6 A 48 43
7 B 25 23
8 B 39 18
# 用缺失值后面的值来填充(这里NaN后面是'A')
In [25]: data.fillna(method='bfill')
Out[25]:
company salary age
0 A 43 21
1 A 8 41
2 A 28 26
3 C 42 28
4 A 33 26
5 C 20 18
6 A 48 43
7 B 25 23
8 B 39 18
.sort_index()
Объект:Series
иDataFrame
Основная цель: сортировать данные по индексу
Основные параметры:
-
по возрастанию (boolean, default False)
Сортировать ли в порядке возрастания
-
на месте (boolean, default False)
Воздействовать ли на исходный объект
использование:
# 按索引降序排列
In [27]: data.sort_index(ascending=False)
Out[27]:
company salary age
8 B 39 18
7 B 25 23
6 A 48 43
5 C 20 18
4 A 33 26
3 C 42 28
2 A 28 26
1 A 8 41
0 NaN 43 21
.sort_values()
Объект:Series
иDataFrame
Основное использование: дляDataFrame
Например, сортировать по столбцу (сby
контроль параметров), даSeries
Сортировка по столбцу данных.
Основные параметры:
-
от (str or list of str)
Действующий на
DataFrame
Когда вам нужно указать столбец для сортировки -
по возрастанию (boolean, default False)
Сортировать ли в порядке возрастания
In [28]: data.sort_values(by='salary')
Out[28]:
company salary age
1 A 8 41
5 C 20 18
7 B 25 23
2 A 28 26
4 A 33 26
8 B 39 18
3 C 42 28
0 NaN 43 21
6 A 48 43
Нелегко быть оригинальным. Если вы считаете, что это полезно, надеюсь, вы поставите лайк. Спасибо, старые утюги.
Отсканируйте код, чтобы подписаться на официальный аккаунт"Питон Чтение Финансов", получите галантерею в первый раз!