• Автор записи:
  • Рубрика записи:Pandas
  • Время чтения:4 минут чтения
  • Комментарии к записи:0 комментариев

Чтобы подсчитать строки в Pandas с условием, вы можете использовать df.shape или len() для прямого подсчета, df.index для длины индекса, df.apply() с лямбдой для пользовательских условий, df.query() для на основе запроса. фильтрация, np.where() для условного индексирования, df.count() для ненулевых записей, df.groupby().size() для категориальных данных и понимание списков для Pythonic-подхода.

Содержание

1. Используя df.shape

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

Вот как мы можем использовать функцию df.shape в Pandas для подсчета строк с условием в Python:

import pandas as pd

df = pd.DataFrame({'State': ['California', 'New York', 'Texas'], 'Sales': [60000, 40000, 80000]})
count_california = df[(df['State'] == 'California') &(df['Sales'] > 50000)].shape[0]
print("California Sales > $50,000:", count_california)

Выход:

California Sales > $50,000: 1

Ниже приведен снимок экрана, сделанный после реализации кода в редакторе Pycharm.

1. Используя df.shape

2. С использованием функции len()

Мы можем применить условие для фильтрации DataFrame в Python, а затем использовать функцию len() для подсчета количества строк в отфильтрованном DataFrame.

Вот код подсчета строк Python с условием в Python с использованием функции len():

import pandas as pd

parks_data = pd.DataFrame({
    'Park': ['Great Smoky Mountains', 'Grand Canyon', 'Rocky Mountain', 'Yosemite', 'Yellowstone'],
    'Area_sq_miles': [522, 1902, 265, 1189, 3471]
})
large_parks = len(parks_data[parks_data['Area_sq_miles'] > 1000])
print("Parks > 1000 sq miles:", large_parks)

Выход:

Parks > 1000 sq miles: 3

Результат выполнения кода в Pycharm показан на снимке экрана ниже.

Количество строк данных с условием в Python

3. С использованием функции df.index()

Этот метод будет фильтровать DataFrame на основе нашего условия в Python, а затем подсчитывать количество строк, получая длину его индекса с помощью функции Pandas df.index().

Вот как мы можем использовать функцию df.index() в Pandas для подсчета строк с условием в Python:

import pandas as pd

gdp_data = pd.DataFrame({
    'State': ['California', 'Texas', 'New York', 'Florida', 'Illinois'],
    'GDP_Billion': [3027, 1806, 1690, 1073, 857]
})
rich_states = len(gdp_data[gdp_data['GDP_Billion'] > 1500].index)
print("States with GDP > $1500 Billion:", rich_states)

Выход:

States with GDP > $1500 Billion: 3

Вот снимок экрана, иллюстрирующий выходные данные после реализации кода в редакторе Pycharm.

3. С использованием функции df.index()

4. С использованием df.apply() с лямбда-функцией

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

Вот код для использования apply() с лямбда-функцией для строк подсчета Pandas с условием в Python:

import pandas as pd

senators_data = pd.DataFrame({
    'Senator': ['Bernie Sanders', 'Mitch McConnell', 'Kamala Harris', 'Ted Cruz', 'Elizabeth Warren'],
    'Age': [79, 79, 56, 50, 71]
})
senior_senators = len(senators_data[senators_data.apply(lambda x: x['Age'] > 70, axis=1)])
print("Senators > 70 years old:", senior_senators)

Выход:

Senators > 70 years old: 3

После реализации кода в редакторе Pycharm соответствующий снимок экрана представлен ниже.

4. С использованием df.apply() с лямбда-функцией

5. С помощью функции df.query()

Этот метод фильтрует строки, используя строковое выражение в качестве условия внутри метода query() в Python, а затем подсчитывает длину результирующего DataFrame.

Вот как мы будем использовать метод query() для строк подсчета Pandas с условием в Python:

import pandas as pd

uni_data = pd.DataFrame({
    'University': ['Harvard', 'MIT', 'Stanford', 'UCLA', 'Columbia'],
    'Students': [31000, 11500, 17000, 45000, 31000]
})
large_universities = len(uni_data.query("Students > 20000"))
print("Universities with > 20,000 students:", large_universities)

Выход:

Universities with > 20,000 students: 3

Ниже представлен скриншот, на котором показан результат реализации кода в редакторе Pycharm.

5. С помощью функции df.query()

6. Используя функцию np.where()

Этот метод использует функцию np.where() в Python для создания массива индексов на основе условия, а затем суммирует их для подсчета строк, удовлетворяющих условию.

Вот пример, который расскажет вам, как использовать функцию np.where в Pandas для подсчета строк с условиями в Python:

import pandas as pd
import numpy as np

temp_data = pd.DataFrame({
    'State': ['Alaska', 'Florida', 'Maine', 'Texas', 'Arizona'],
    'Avg_Temp_F': [26, 71, 45, 65, 75]
})
warm_states = np.sum(np.where(temp_data['Avg_Temp_F'] > 60, 1, 0))
print("States with Avg. Temp > 60F:", warm_states)

Выход:

States with Avg. Temp > 60F: 3

Результат выполнения кода в Pycharm показан на снимке экрана ниже.

6. Используя функцию np.where()

7. Используя функцию df.count()

После фильтрации DataFrame на основе условия мы можем использовать count() для определенного столбца, чтобы получить количество записей, отличных от NA/null, что является количеством строк.

Это использование функции df.count() для подсчета строк с условием в Python Pandas:

import pandas as pd

company_data = pd.DataFrame({
    'Company': ['Apple', 'Google', 'Microsoft', 'Amazon', 'Facebook'],
    'Revenue_Billion': [274.5, 182.5, 143, 386, 86]
})
complete_revenue_data = company_data['Revenue_Billion'].count()
print("Companies with Complete Revenue Data:", complete_revenue_data)

Выход:

Companies with Complete Revenue Data: 5

Ниже показан снимок экрана, иллюстрирующий выходные данные после выполнения кода в редакторе Pycharm.

7. Используя функцию df.count()

8. Используя функцию df.groupby().size()

Этот метод полезен для категориальных данных. Сгруппируйте данные по категориям и используйте функцию size() для подсчета строк в каждой группе.

Вот как мы можем использовать функцию df.groupby().size() для подсчета строк Pandas с условием в Python:

import pandas as pd

movie_data = pd.DataFrame({
    'Movie': ['Avengers', 'Titanic', 'Inception', 'The Godfather', 'Joker'],
    'Genre': ['Action', 'Romance', 'Sci-Fi', 'Drama', 'Thriller']
})
movies_by_genre = movie_data.groupby('Genre').size()
print("Number of Movies by Genre:\n", movies_by_genre)

Выход:

Number of Movies by Genre:
 Genre
Action      1
Drama       1
Romance     1
Sci-Fi      1
Thriller    1
dtype: int64

На следующем снимке экрана показаны результаты после реализации кода в редакторе Pycharm.

8. Используя функцию df.groupby().size()

9. С использованием понимания списка

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

Вот пример подсчета строк Pandas с условием в Python с использованием понимания списка:

import pandas as pd

river_data = pd.DataFrame({
    'River': ['Mississippi', 'Missouri', 'Yukon', 'Rio Grande', 'Arkansas'],
    'Length_miles': [2340, 2341, 1980, 1885, 1460]
})
long_rivers = sum([1 for _, row in river_data.iterrows() if row['Length_miles'] > 2000])
print("Rivers > 2000 miles:", long_rivers)

Выход:

Rivers > 2000 miles: 2

Ниже показан снимок экрана, сделанный после реализации кода в редакторе Pycharm.

9. С использованием понимания списка

Заключение

Понимание различных методов подсчета строк Pandas с условием в Python необходимо для эффективного анализа данных. Такие методы, как df.shape, len(), df.index, df.apply() с лямбда-функцией, df.query(), np.where(), df.count(), df.groupby().size() и понимание списков.

Добавить комментарий