Как отфильтровать 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