Как отфильтровать DataFrame Pandas: 5 простых методов для начинающих
Фильтрация DataFrame Pandas включает выбор конкретных строк, которые соответствуют точным условиям. Это особенно полезно для широкого спектра случаев использования Python. В данных временных рядов мы можем фильтровать данные по определенным временным интервалам. Кроме того, для улучшения качества данных мы можем выполнить фильтрацию для удаления строк с отсутствующими данными, что поможет в дальнейшем анализе. Кроме того, когда мы работаем с машинным обучением, нам приходится фильтровать строки на основе определенных функций, что создает подмножества для тестирования.
Метод фильтрации фрейма данных Pandas в Python
Для фильтрации Pandas DataFrame давайте сначала создадим DataFrame, используя CSV-файл:
import pandas as pd
df = pd.read_csv('recent-grads.csv')
print(df.shape)
df.head()
Здесь мы сначала импортировали pandas как pd
, затем создали DataFrame, используя файл CSV, имя файла CSV — recent-grads.csv
, и после этого мы напечатали df.shape
и заголовок DataFrame, используя df.head( )
Вывод:
Методы фильтрации DataFrame Pandas в Python приведены ниже:
- Фильтрация DataFrame с использованием Boolean Masking
- Фильтрация DataFrame с использованием
loc()
- Фильтрация DataFrame с использованием
query()
- Фильтрация DataFrame с использованием
iloc()
- Фильтрация DataFrame с использованием
isnull()
Фильтрация DataFrame с использованием Boolean Masking
Мы можем использовать метод логической маски для фильтрации DataFrame, указав условия.
Пример 1:
import pandas as pd
df1 = df[ df['Major_category'] == 'Social Science' ]
print(df1.shape)
df1.head()
Здесь мы создали условие df['Major_category'] == 'Social Science'
означает, что везде, где столбец Major_category
равен 'Social Science'
, тогда эти строки будут возвращены. Мы сохранили результат в новом DataFrame df1
, а затем распечатали размер и заголовок DataFrame df1
.
Вывод:
Пример 2:
import pandas as pd
filter_criteria = (df['Major_category'] == 'Social Science') & (df['ShareWomen'] >= .5)
df1m = df[filter_criteria]
print(df1m.shape)
df1m.head()
Здесь мы создали условие df[‘Major_category’] == ‘Social Science’ &(df[‘ShareWomen’] >= .5
означает, что в любом месте столбец Major_categeory
равен значению Social Science
, а ShareWomen
больше и равен 0,5
, т.е. условие выполнено, тогда эти строки будут возвращены.
Вывод:
Фильтрация DataFrame с использованием метода loc()
Мы можем использовать метод loc()
, в который мы поместим определенные условия для фильтрации DataFrame. Используя его, мы можем вернуть конкретные столбцы, которые нам нужны.
import pandas as pd
filter_criteria = (df['Major_category'] == 'Social Science') & (df['ShareWomen'] >= .5)
df2 = df.loc[filter_criteria,'Part_time']
df2.head()
Здесь мы вернули строки только из столбца Part_time
, которые соответствуют условию (df[‘Major_category’] == ‘Social Science’) & (df[‘ShareWomen’] >= .5)
Вывод:
Фильтрация DataFrame с использованием метода query()
Мы также можем использовать метод query()
, в котором мы можем указать условия фильтрации DataFrame.
import pandas as pd
df3 = df.query("Major_category == 'Social Science' & ShareWomen >= .5")
print(df3.shape)
df3.head()
Здесь мы написали df3 = df.query(“Major_category == ‘Social Science’ & ShareWomen >= .5”)
означает, что везде, где столбец Major_categeory
равен Social Science
, а ShareWomen
больше и равен 0,5
, тогда эти строки будут возвращены.
Вывод:
Фильтрация DataFrame с использованием метода iloc()
Мы можем фильтровать DataFrame с помощью метода iloc()
, где нам нужно указать индекс строк и столбцов вместо имени.
import pandas as pd
df4 = df.iloc[ :10, 2:6]
print(df4.shape)
df4.head()
Здесь мы написали df4 = df.iloc[:10, 2:6]
означает, что мы вернули первые 10 строк и столбцов со 2 по 6 в DataFrame df4
.
Вывод:
Фильтрация DataFrame с использованием метода isnull()
Мы можем отфильтровать недостающие данные из DataFrame с помощью метода isnull()
import pandas as pd
df5 = df[df['Total'].isnull()]
print(df5.shape)
df5.head()
Здесь мы вернули те строки из DataFrame, в которых в столбце Total
отсутствуют значения.
Вывод:
Заключение
Фильтрация DataFrame — это фундаментальная операция анализа данных, которая в ряде случаев используется для исследования, анализа и визуализации данных. В этом уроке мы обсудили пять методов фильтрации Pandas DataFrame с примерами. Мы надеемся, что после прочтения этого руководства вы сможете легко фильтровать Pandas DataFrame в Python.
Ссылки
https://stackoverflow.com/questions/71811188/filtering-pandas-dataframe-in-python