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