Обработка данных Pandas — список часто используемых функций (включено)

анализ данных
Обработка данных Pandas — список часто используемых функций (включено)

Публичный аккаунт 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

Нелегко быть оригинальным. Если вы считаете, что это полезно, надеюсь, вы поставите лайк. Спасибо, старые утюги.

Отсканируйте код, чтобы подписаться на официальный аккаунт"Питон Чтение Финансов", получите галантерею в первый раз!

底部二维码.png