Pandas: Количество строк в DataFrame (6 способов)

В этой статье вы узнаете, как подсчитать количество строк в DataFrame Pandas, включая строки, содержащие определённое значение или удовлетворяющие заданному условию. Вы узнаете, какие методы использовать стоит, а какие — нет (да, мы смотрим на тебя, .count()!), а также какие из них самые быстрые.

Оглавление

Загрузка примера DataFrame

Чтобы следовать материалу урока, скопируйте и вставьте приведённый ниже код в свой редактор. Это загрузит пример DataFrame Pandas, который мы будем использовать для подсчёта строк:

import pandas as pd

data = {
    'Level': ['Beginner', 'Intermediate', 'Advanced', 'Beginner', 'Intermediate', 'Advanced', 
        'Beginner', 'Intermediate', 'Advanced', 'Beginner', 'Intermediate', 'Advanced', 'Beginner', 
        'Intermediate', 'Advanced', 'Beginner', 'Intermediate', 'Advanced'], 
    'Students': [10.0, 20.0, 10.0, 40.0, 20.0, 10.0, None, 20.0, 20.0, 40.0, 10.0, 30.0, 30.0, 10.0, 10.0, 10.0, 40.0, 20.0]
    }

df = pd.DataFrame.from_dict(data)

print(df.head())

Ознакомьтесь с другими уроками Python на сайте datagy, включая наше полное руководство по стилизации Pandas и подробный обзор сводных таблиц (Pivot Tables) в Pandas!

Pandas предоставляет множество различных способов подсчёта количества строк в DataFrame.

Ниже вы узнаете о функции len() из Pandas, свойстве .shape и методе .count().

Функция Pandas len() для подсчёта строк

Функция len() из Pandas возвращает длину DataFrame. Самый надёжный способ определить количество строк в DataFrame — это подсчитать длину его индекса.

Чтобы получить длину индекса, напишите следующий код:

>> print(len(df.index))
18

Атрибут Pandas .shape для подсчёта строк

Атрибут .shape в Pandas используется для получения кортежа, содержащего количество строк и столбцов, в формате (строки, столбцы). Если вам нужно только количество строк (например, для условия в цикле for), вы можете получить первый элемент этого кортежа.

>> print(df.shape[0])
18

Метод Pandas .count() для подсчёта строк в DataFrame

К сожалению, метод .count() из Pandas является самым медленным среди трёх перечисленных здесь методов. Атрибут .shape и функция len() являются векторизованными и выполняются за одно и то же время, независимо от размера DataFrame. Метод .count() работает значительно дольше при увеличении размера DataFrame.

Одним из преимуществ метода .count() является то, что он может игнорировать пропущенные значения.

>> print(df.count())
Level       18
Students    17
dtype: int64

Приведённый выше результат показывает, что в столбце Level содержится 18 значений, а в столбце Students — только 17. На самом деле это подсчитывает количество значений, а не количество строк.

Количество строк, содержащих определённое значение в DataFrame Pandas

Чтобы подсчитать строки, содержащие определённое значение, мы можем применить булеву маску к серии Pandas (столбцу) и посмотреть, сколько строк соответствует данному условию. Что ещё удобно: поскольку Pandas интерпретирует значение True как 1, а False как 0, мы можем просто просуммировать этот массив.

В качестве примера подсчитаем количество строк, в которых столбец Level равен 'Beginner':

>> print(sum(df['Level'] == 'Beginner'))
6

Количество строк, удовлетворяющих условию в DataFrame Pandas

Аналогично приведённому выше примеру, если мы хотим подсчитать количество строк, соответствующих определённому условию, мы можем создать для этого булеву маску.

В следующем примере мы подсчитываем количество строк, в которых столбец Students больше или равен 20:

>> print(sum(df['Students'] >= 20))
10

Количество строк в каждой группе в Pandas

Чтобы подсчитать количество строк в каждой группе, созданной с помощью метода .groupby() в Pandas, можно использовать атрибут size. Этот метод возвращает серию, содержащую количество строк, принадлежащих каждой группе.

print(df.groupby(['Level']).size())

Заключение

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

Чтобы узнать больше о свойстве .shape, ознакомьтесь с официальной документацией по этой ссылке: Ссылка на документацию

Last updated