| description | Query the DataFrame by the result of a logical comparison or boolean mask. |
|---|
danfo.DataFrame.query(kwargs)
| Parameters | Type | Description | Default |
|---|---|---|---|
| kwargs | Object | { condition: A logical boolean mask, 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. } |
{% hint style="info" %} Querying by a boolean condition is supported from v0.3.0 and above. {% endhint %}
const dfd = require("danfojs-node")
let data = {
"A": ["Ng", "Yu", "Mo", "Ng"],
"B": [34, 4, 5, 6],
"C": [20, 20, 30, 40]
}
let df = new dfd.DataFrame(data)
df.print()
let query_df = df.query(df["B"].gt(5))
query_df.print() //after queryββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β Ng β 34 β 20 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 1 β Yu β 4 β 20 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 2 β Mo β 5 β 30 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β Ng β 6 β 40 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β Ng β 34 β 20 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β Ng β 6 β 40 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
It also supports condition chaining as long as the final boolean mask is the same length as the DataFrame rows. For example in the following code, we use multiple chaining conditions:
const dfd = require("danfojs-node")
let data = {
"A": ["Ng", "Yu", "Mo", "Ng"],
"B": [34, 4, 5, 6],
"C": [20, 20, 30, 40]
}
let df = new dfd.DataFrame(data)
df.print()
let query_df = df.query(df["B"].gt(5).and(df["C"].lt(40)))
query_df.print() //after query// output
ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β Ng β 34 β 20 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 1 β Yu β 4 β 20 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 2 β Mo β 5 β 30 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β Ng β 6 β 40 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β Ng β 34 β 20 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
{% hint style="info" %} This is only supported in older versions. That is versions lower than v1.0.0 {% endhint %}
To query a DataFrame, you can specify the column to use, the logical operator (">", "<", ">=", "<=", and. "=="), and the value to compare against.
{% tabs %} {% tab title="Node" %}
const dfd = require("danfojs-node")
let data = {"A": [30, 1, 2, 3],
"B": [34, 4, 5, 6],
"C": [20, 20, 30, 40]}
let cols = ["A", "B", "C"]
let df = new dfd.DataFrame(data, { columns: cols })
df.print() //before query
let query_df = df.query({ "column": "B", "is": ">", "to": 5 })
query_df.print() //after query{% endtab %}
{% tab title="Browser" %}
{% endtab %} {% endtabs %}
{% tabs %} {% tab title="Output" %}
//before query
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β 1 β 2 β 3 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 1 β 4 β 5 β 6 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 2 β 20 β 30 β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β 39 β 89 β 78 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
//after query
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 2 β 20 β 30 β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β 39 β 89 β 78 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
{% endtab %} {% endtabs %}
{% hint style="info" %} This is only supported in older versions. That is versions lower than v1.0.0 {% endhint %}
The query method also works on string columns.
{% tabs %} {% tab title="Node" %}
const dfd = require("danfojs-node")
let data = {"A": ["Ng", "Yu", "Mo", "Ng"],
"B": [34, 4, 5, 6],
"C": [20, 20, 30, 40]}
let df = new dfd.DataFrame(data)
df.print()
let query_df = df.query({ column: "A", is: "==", to: "Ng"})
query_df.print() //after query{% endtab %}
{% tab title="Browser" %}
{% endtab %} {% endtabs %}
{% tabs %} {% tab title="Output" %}
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β Ng β 34 β 20 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 1 β Yu β 4 β 20 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 2 β Mo β 5 β 30 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β Ng β 6 β 40 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
//after query
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β A β B β C β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 0 β Ng β 34 β 20 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β 3 β Ng β 6 β 40 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
{% endtab %} {% endtabs %}