", "<", ">=", "<=", and. "==")" id="__meta-description" /> ", "<", ">=", "<=", and. "==")" id="__meta-og:description" />
DataFrame.query
Query the DataFrame by the result of a logical comparison. Supports logical operations like (">", "<", ">=", "<=", and. "==")
danfo.DataFrame.query(kwargs) [source]
Parameters
Type
Description
Default
kwargs
Object
{column : str, name of the column
is: Logical operator, one of ">", "<", ">=", "<=", and. "=="
to: Int, Float, Str. Value to compare against,
inplace: boolean. true | false. Whether to perform operation to the original Object or create a new one.
}
{inplace: false}
Returns:
return new DataFrame

Examples

Query a DataFrame using boolean mask

Querying by a boolean condition is supported from v0.3.0 and above.
1
let data = {
2
"A": ["Ng", "Yu", "Mo", "Ng"],
3
"B": [34, 4, 5, 6],
4
"C": [20, 20, 30, 40]
5
}
6
let df = new dfd.DataFrame(data)
7
8
let query_df = df.query({ condition: df["B"].gt(5) })
9
query_df.print() //after query
Copied!
1
╔════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ A │ B │ C ║
3
╟────────────┼───────────────────┼───────────────────┼───────────────────╢
4
║ 2 │ 20 │ 30 │ 40 ║
5
╟────────────┼───────────────────┼───────────────────┼───────────────────╢
6
║ 3 │ 39 │ 89 │ 78 ║
7
╚════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
It also supports condition chaining as long as the final boolean mask is the same lenght as the DataFrame rows. For example in the following code, we use multiple chaining conditions:
1
let data = {
2
"A": ["Ng", "Yu", "Mo", "Ng"],
3
"B": [34, 4, 5, 6],
4
"C": [20, 20, 30, 40]
5
}
6
let df = new dfd.DataFrame(data)
7
8
let query_df = df.query({ condition: df["B"].gt(5).and(df["C"].lt(40)) })
9
query_df.print() //after query
10
11
//output
12
╔════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
13
║ │ ABC
14
╟────────────┼───────────────────┼───────────────────┼───────────────────╢
15
0 │ Ng │ 3420
16
╚════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
17
18
Copied!

Query a DataFrame using logical operators

To query a DataFrame, you can specify the column to use, the logical operator (">", "<", ">=", "<=", and. "=="), and the value to compare against.
Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = {"A": [30, 1, 2, 3],
4
"B": [34, 4, 5, 6],
5
"C": [20, 20, 30, 40]}
6
7
let cols = ["A", "B", "C"]
8
let df = new dfd.DataFrame(data, { columns: cols })
9
df.print() //before query
10
11
let query_df = df.query({ "column": "B", "is": ">", "to": 5 })
12
query_df.print() //after query
Copied!
1
Copied!
Output
1
//before query
2
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
3
║ │ A │ B │ C ║
4
╟───┼───────────────────┼───────────────────┼───────────────────╢
5
║ 0 │ 1 │ 2 │ 3 ║
6
╟───┼───────────────────┼───────────────────┼───────────────────╢
7
║ 1 │ 4 │ 5 │ 6 ║
8
╟───┼───────────────────┼───────────────────┼───────────────────╢
9
║ 2 │ 20 │ 30 │ 40 ║
10
╟───┼───────────────────┼───────────────────┼───────────────────╢
11
║ 3 │ 39 │ 89 │ 78 ║
12
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
13
14
//after query
15
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
16
║ │ A │ B │ C ║
17
╟───┼───────────────────┼───────────────────┼───────────────────╢
18
║ 2 │ 20 │ 30 │ 40 ║
19
╟───┼───────────────────┼───────────────────┼───────────────────╢
20
║ 3 │ 39 │ 89 │ 78 ║
21
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Node
Browser
1
const dfd = require("danfojs-node")
2
let data = {"A": [30, 1, 2, 3],
3
"B": [34, 4, 5, 6],
4
"C": [20, 20, 30, 40]}
5
6
let df = new dfd.DataFrame(data)
7
8
df.print()
9
10
let query_df = df.query({ "column": "A", "is": ">", "to": 9 })
11
query_df.print() //after query
12
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ A │ B │ C ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ 30 │ 34 │ 20 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ 1 │ 4 │ 20 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────╢
8
║ 2 │ 2 │ 5 │ 30 ║
9
╟───┼───────────────────┼───────────────────┼───────────────────╢
10
║ 3 │ 3 │ 6 │ 40 ║
11
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
12
13
//after query
14
15
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
16
║ │ A │ B │ C ║
17
╟───┼───────────────────┼───────────────────┼───────────────────╢
18
║ 0 │ 30 │ 34 │ 20 ║
19
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!

Query by a string column in a DataFrame

The query method also works on string columns.
Node
Browser
1
const dfd = require("danfojs-node")
2
let data = {"A": ["Ng", "Yu", "Mo", "Ng"],
3
"B": [34, 4, 5, 6],
4
"C": [20, 20, 30, 40]}
5
6
let df = new dfd.DataFrame(data)
7
8
df.print()
9
10
let query_df = df.query({ column: "A", is: "==", to: "Ng"})
11
query_df.print() //after query
12
Copied!
1
Copied!
Output
1
2
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
3
║ │ A │ B │ C ║
4
╟───┼───────────────────┼───────────────────┼───────────────────╢
5
║ 0 │ Ng │ 34 │ 20 ║
6
╟───┼───────────────────┼───────────────────┼───────────────────╢
7
║ 1 │ Yu │ 4 │ 20 ║
8
╟───┼───────────────────┼───────────────────┼───────────────────╢
9
║ 2 │ Mo │ 5 │ 30 ║
10
╟───┼───────────────────┼───────────────────┼───────────────────╢
11
║ 3 │ Ng │ 6 │ 40 ║
12
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
13
14
//after query
15
16
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
17
║ │ A │ B │ C ║
18
╟───┼───────────────────┼───────────────────┼───────────────────╢
19
║ 0 │ Ng │ 34 │ 20 ║
20
╟───┼───────────────────┼───────────────────┼───────────────────╢
21
║ 3 │ Ng │ 6 │ 40 ║
22
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!

Query a DataFrame inplace

Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = {"A": [30, 1, 2, 3],
4
"B": [34, 4, 5, 6],
5
"C": [20, 20, 30, 40]}
6
7
let cols = ["A", "B", "C"]
8
let df = new dfd.DataFrame(data, { columns: cols })
9
10
df.query({
11
column: "B",
12
is: ">",
13
to: 5,
14
inplace: true
15
})
16
df.print()
17
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ A │ B │ C ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ 30 │ 34 │ 20 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 3 │ 3 │ 6 │ 40 ║
7
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Last modified 17d ago