Pandas: количество столбцов (подсчет столбцов в DataFrame)

В этом уроке вы узнаете, как использовать Pandas для подсчета количества столбцов в DataFrame Pandas. Вы изучите несколько способов для этого, включая использование атрибута df.columns и атрибута df.shape. Знание того, как получить количество столбцов в DataFrame Pandas, является важным навыком. Поскольку эти методы выполняют разные функции и возвращают разные типы значений, знание того, какой метод возвращает нужный вам тип результата, полезно для того, чтобы ваша программа действовала так, как вы хотите.

Краткий ответ: Используйте len(df.columns)

# Подсчет количества столбцов в Pandas DataFrame

num_columns_a = len(df.columns)    # Способ 1: используя свойство .columns
num_columns_b = df.shape[1]       # Способ 2: используя свойство .shape (возвращает [строки, столбцы])

# Оба метода дают одинаковый результат - количество столбцов в DataFrame

Оглавление

Загрузка образца Pandas Dataframe

Давайте начнем этот учебник с загрузки примера dataframe, с которым вы можете следовать. Если вы работаете с собственным dataframe, вероятно, вы получите другие результаты.

Загрузим наш Dataframe с помощью Pandas:

# Загрузка образец DataFrame Pandas с использованием seaborn.load_dataset

from seaborn import load_dataset

df = load_dataset('penguins')
print(df.head())

# Возвращает:
#   species     island  bill_length_mm  bill_depth_mm  flipper_length_mm  body_mass_g     sex
# 0  Adelie  Torgersen            39.1           18.7              181.0       3750.0    Male
# 1  Adelie  Torgersen            39.5           17.4              186.0       3800.0  Female
# 2  Adelie  Torgersen            40.3           18.0              195.0       3250.0  Female
# 3  Adelie  Torgersen             NaN            NaN                NaN          NaN     NaN
# 4  Adelie  Torgersen            36.7           19.3              193.0       3450.0  Female

В приведенном выше коде мы загрузили DataFrame Pandas с помощью функции load_dataset(), которая входит в пакет Seaborn. Если у вас не установлен модуль Seaborn, вы можете установить его с помощью следующей команды:

pip install seaborn

Чтобы узнать больше о библиотеке Seaborn, ознакомьтесь с моим подробным руководством здесь, которое поможет вам использовать эту популярную библиотеку для визуализации данных.

Теперь, когда у нас есть датафрейм, давайте научимся считать количество столбцов в датафрейме Pandas с помощью атрибута .columns .

Хотите узнать больше о f-строках в Python? Ознакомьтесь с моим подробным руководством, в котором есть пошаговое видео, чтобы овладеть f-строками в Python!

Получить количество столбцов Pandas Dataframe с помощью .columns

В этом разделе вы научитесь простому и универсальному методу подсчета количества столбцов в Pandas Dataframe. Поскольку Dataframe Pandas являются объектами Python, мы можем получать доступ к различным атрибутам, принадлежащим им. Одним из этих атрибутов является атрибут .columns, который возвращает структуру, подобную списку, содержащую все различные столбцы в этом dataframe

Поскольку мы можем подсчитать количество элементов в списке с помощью функции len(), мы можем передать атрибут этой функции, чтобы подсчитать количество столбцов в нашем датафрейме.

Посмотрим, как это работает

# Подсчет числа столбцов в DataFrame Pandas с использованием .columns

from seaborn import load_dataset

df = load_dataset('penguins')

num_columns = len(df.columns)

print(num_columns)

# Возвращает: 7

Мы видим на примере выше, что когда мы передаем атрибут .columns в функцию len(), это возвращает количество колонок в списке датафрейма.

В следующем разделе вы узнаете, как подсчитать количество столбцов в Pandas Dataframe, соответствующих определенному условию.

Подсчитайте количество столбцов Pandas Dataframe, соответствующих условию

Могут возникнуть ситуации, когда необходимо подсчитать количество столбцов в DataFrame Pandas, которые соответствуют определённому условию. Например, вам может быть интересно, сколько столбцов содержат заданный суффикс или содержат числа.

Мы можем сделать это, используя атрибут .columns фрейма данных. Мы можем использовать списковое включение, чтобы отфильтровать элементы и предоставить только те, которые соответствуют условию. Чтобы узнать больше о списковых включениях Python, ознакомьтесь с моим подробным руководством здесь, которое также включает в себя видеообзор.

Мы можем перебирать структуру, подобную списку, и сохранять только те элементы, которые соответствуют условию. В примере ниже вы узнаете, как подсчитать количество столбцов, которые имеют суффикс ‘_mm’

# Подсчет числа столбцов в DataFrame Pandas с использованием .columns при условии

from seaborn import load_dataset

df = load_dataset('penguins')

# Подсчитываем количество столбцов, содержащих '_mm' в названии
conditional_columns = [col for col in df.columns if '_mm' in col]
num_columns = len(conditional_columns)

print(num_columns)

# Возвращает: 3

Мы видим, что проверяем, содержится ли строка '_mm' в названии нашего столбца. Если нет, то не включаем его в наш список столбцов. Наконец, мы подсчитываем количество столбцов, соответствующих нашему условию, что возвращает значение 3.

В следующем разделе вы узнаете, как использовать атрибут .shape библиотеки Pandas для подсчета количества столбцов в DataFrame.

Получить количество столбцов Pandas Dataframe с помощью .shape

Атрибут .shape в Pandas — это полезный атрибут DataFrame, который позволяет увидеть количество строк и столбцов в DataFrame. **Атрибут shape возвращает кортеж значений, где первое значение — это количество строк в DataFrame, а второе значение — количество столбцов в DataFrame

Мы можем получить количество столбцов в нашем датафрейме, используя атрибут .shape и обратившись ко второму элементу.

Прежде чем мы начнем, давайте посмотрим, что возвращает атрибут .shape DataFrame

# Подсчет числа столбцов в DataFrame Pandas с использованием .shape

from seaborn import load_dataset

df = load_dataset('penguins')
print(df.shape)
# Возвращает: (344, 7)

Атрибут возвращает кортеж, соответствующий следующим элементам (количество строк, количество столбцов). Мы можем получить доступ ко второму элементу, обратившись к позиции индекса 1.

Давайте посмотрим, как это можно сделать в Pandas:

# Подсчет числа столбцов в DataFrame Pandas с использованием .shape

from seaborn import load_dataset

df = load_dataset('penguins')
num_columns = df.shape[1]
print(num_columns)

# Возвращает: 7

Здесь мы видим, что при обращении к первому элементу возвращенных данных мы получаем количество столбцов в датафрейме Pandas. В следующем разделе вы узнаете, как использовать метод Pandas .info() для получения количества столбцов в датафрейме.

Получить количество столбцов Pandas Dataframe с помощью .info

В этом заключительном разделе вы научитесь использовать метод .info(), чтобы получить количество столбцов в датафрейме. Этот метод работает немного иначе, чем атрибут, который вы видели в предыдущих разделах руководства. Это связано с тем, что он возвращает информацию о датафрейме в строковом формате.

Посмотрим, как это выглядит в Pandas:

# Подсчет числа столбцов в DataFrame Pandas с использованием .info()

from seaborn import load_dataset

df = load_dataset('penguins')
print(df.info())
# Возвращает:
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 344 entries, 0 to 343
# Data columns (total 7 columns):
#  #   Column             Non-Null Count  Dtype  
# ---  ------             --------------  -----  
#  0   species            344 non-null    object 
#  1   island             344 non-null    object 
#  2   bill_length_mm     342 non-null    float64
#  3   bill_depth_mm      342 non-null    float64
#  4   flipper_length_mm  342 non-null    float64
#  5   body_mass_g        342 non-null    float64
#  6   sex                333 non-null    object 
# dtypes: float64(4), object(3)
# memory usage: 18.9+ KB
# None

Мы видим, что хотя предоставляется много полезной информации о самом датафрейме, включая количество столбцов, информация не является легко доступной программно. Например, мы не можем получить количество элементов без непосредственного чтения этой информации.

Заключение

В этом руководстве вы узнали, как использовать Python и Pandas для подсчета количества столбцов в датафрейме. Вы научились делать это с помощью атрибутов .columns, .shape и .info. Вы освоили, как эти методы работают и какие результаты они возвращают. Вы также научились считать количество столбцов, удовлетворяющих условию, например, содержащих подстроку.

Чтобы узнать больше об атрибуте .columns в Pandas, ознакомьтесь с официальной документацией здесь.

Last updated