Чтобы подсчитать строки в Pandas с условием, вы можете использовать df.shape или len() для прямого подсчета, df.index для длины индекса, df.apply() с лямбдой для пользовательских условий, df.query() для на основе запроса. фильтрация, np.where() для условного индексирования, df.count() для ненулевых записей, df.groupby().size() для категориальных данных и понимание списков для Pythonic-подхода.
- 1. Используя df.shape
- 2. С использованием функции len()
- 3. С использованием функции df.index()
- 4. С использованием df.apply() с лямбда-функцией
- 5. С помощью функции df.query()
- 6. Используя функцию np.where()
- 7. Используя функцию df.count()
- 8. Используя функцию df.groupby().size()
- 9. С использованием понимания списка
- Заключение
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.
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 показан на снимке экрана ниже.
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.
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 соответствующий снимок экрана представлен ниже.
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.
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 показан на снимке экрана ниже.
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.
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.
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.
Заключение
Понимание различных методов подсчета строк Pandas с условием в Python необходимо для эффективного анализа данных. Такие методы, как df.shape, len(), df.index, df.apply() с лямбда-функцией, df.query(), np.where(), df.count(), df.groupby().size() и понимание списков.