Запрос DataFrame Pandas

Чтобы запросить строки DataFrame на основе условия, примененного к столбцам, вы можете использовать метод pandas.DataFrame.query().

По умолчанию функция query() возвращает DataFrame, содержащий отфильтрованные строки. Вы также можете передать аргумент inplace = True функции, чтобы изменить исходный DataFrame.

Пример 1: с условием для одного столбца

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

import pandas as pd

#initialize a dataframe
df = pd.DataFrame(
	[[21, 72, 67],
	[23, 78, 62],
	[32, 74, 56],
	[73, 88, 67],
	[32, 74, 56],
	[43, 78, 69],
	[32, 74, 54],
	[52, 54, 76]],
	columns=['a', 'b', 'c'])

#query single column
df1 = df.query('a>50')

#print the dataframe
print(df1)

Вывод:

    a   b   c
3  73  88  67
7  52  54  76

Пример 2: с использованием оператора AND

В этом примере мы попытаемся применить условие к нескольким столбцам и использовать оператор AND.

import pandas as pd

#initialize a dataframe
df = pd.DataFrame(
	[[21, 72, 67],
	[23, 78, 62],
	[32, 74, 56],
	[73, 88, 67],
	[32, 74, 56],
	[43, 78, 69],
	[32, 74, 54],
	[52, 54, 76]],
	columns=['a', 'b', 'c'])

#query multiple columns
df1 = df.query('a>30 and c>60')

#print the dataframe
print(df1)

Вывод:

    a   b   c
3  73  88  67
5  43  78  69
7  52  54  76

Пример 3: с использованием оператора OR

В этом примере мы попытаемся применить условие к нескольким столбцам и использовать оператор OR.

import pandas as pd

#initialize a dataframe
df = pd.DataFrame(
	[[21, 72, 67],
	[23, 78, 62],
	[32, 74, 56],
	[73, 88, 67],
	[32, 74, 56],
	[43, 78, 69],
	[32, 74, 54],
	[52, 54, 76]],
	columns=['a', 'b', 'c'])

#query multiple columns
df1 = df.query('a>50 or c>60')

#print the dataframe
print(df1)

Вывод:

    a   b   c
0  21  72  67
1  23  78  62
3  73  88  67
5  43  78  69
7  52  54  76

Пример 4: с параметром inplace

Мы можем передать inplace = True, чтобы изменить фактический DataFrame, над которым мы работаем.

import pandas as pd

#initialize a dataframe
df = pd.DataFrame(
	[[21, 72, 67],
	[23, 78, 62],
	[32, 74, 56],
	[73, 88, 67],
	[32, 74, 56],
	[43, 78, 69],
	[32, 74, 54],
	[52, 54, 76]],
	columns=['a', 'b', 'c'])

#query dataframe with inplace trues
df.query('a>50 and c>60', inplace=True)

#print the dataframe
print(df)

Вывод:

    a   b   c
3  73  88  67
7  52  54  76

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *