The query()
method in Pandas is used to extract rows from a DataFrame that satisfy specific conditions.
Example
import pandas as pd
# sample DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df = pd.DataFrame(data)
# query the DataFrame where column 'A' is less than 3
result = df.query('A < 3')
print(result)
'''
Output
A B
0 1 4
1 2 5
'''
query() Syntax
The syntax of the query()
method in Pandas is:
df.query(expr, inplace=False, **kwargs)
query() Arguments
The query()
method has the following arguments:
expr
: the query string to evaluateinplace
(optional): whether the query should modify the data in place or return a modified copy**kwargs
: additional keyword arguments to pass to the query.
query() Return Value
The query()
method returns a DataFrame resulting from the query expression.
Example 1: Basic Query
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, 8]}
df = pd.DataFrame(data)
# query the DataFrame for rows where 'A' is greater than 4
result = df.query('A > 4')
print(result)
Output
A B 2 5 6 3 7 8
In this example, we returned the rows with A > 4
.
Example 2: Query Using Index
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, 8]}
df = pd.DataFrame(data)
# query the DataFrame using index
result = df.query('index > 1')
print(result)
Output
A B 2 5 6 3 7 8
In this example, we returned the rows with index > 1
.
Example 3: Query with a Variable
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, 8]}
df = pd.DataFrame(data)
# set a threshold
threshold = 4
# query the DataFrame with a variable
result = df.query('A > @threshold')
print(result)
Output
A B 2 5 6 3 7 8
In this example, we returned the rows with A > @threshold
.
Notice the use of @
before the variable name.
Example 4: String Matching Using Query
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, "bat"]}
df = pd.DataFrame(data)
# query the DataFrame for rows where 'B' matches a string
result = df.query('B == "bat"')
print(result)
Output
A B 3 7 bat
In this example, we performed string matching with query()
to return the rows where B=="bat"
.