GFQL Operator Reference#
This reference outlines the operators available in GFQL for constructing predicates in your graph queries. These operators are wrappers around Pandas/cuDF functions, allowing you to express complex filtering conditions intuitively. See the API reference documentation for more details on individual operators.
Operators#
The following table lists the available operators, their descriptions, and examples of how to use them in GFQL.
Numeric and Comparison Operators
Operator |
Description |
Example |
---|---|---|
|
Greater than |
|
|
Less than |
|
|
Greater than or equal to |
|
|
Less than or equal to |
|
|
Equal to |
|
|
Not equal to |
|
|
Between |
|
Note
All numeric comparison operators (gt
, lt
, ge
, le
, eq
, ne
, between
) also support temporal values:
DateTime:
n({ "created_at": gt(pd.Timestamp("2023-01-01 12:00:00")) })
Date:
n({ "event_date": eq(date(2023, 6, 15)) })
Time:
n({ "daily_time": between(time(9, 0), time(17, 0)) })
See Working with Dates and Times for datetime filtering examples.
Categorical Operators
Operator |
Description |
Example |
---|---|---|
|
Value is in |
|
|
Value is not in |
|
|
Marks duplicated values. |
|
String Operators
Operator |
Description |
Example |
---|---|---|
|
String contains |
|
|
String starts with |
|
|
String ends with |
|
|
String matches regex |
|
|
String is numeric. |
|
|
String is alphabetic. |
|
|
String is digit characters. |
|
|
String is lowercase. |
|
|
String is uppercase. |
|
|
String contains only whitespace. |
|
|
String is alphanumeric. |
|
|
String is decimal characters. |
|
|
String is title-cased. |
|
Null and NA Operators
Operator |
Description |
Example |
---|---|---|
|
Value is NA/NaN. |
|
|
Value is not NA/NaN. |
|
|
Alias for |
|
|
Alias for |
|
Temporal Operators
Operator |
Description |
Example |
---|---|---|
|
Date is the first day of the month. |
|
|
Date is the last day of the month. |
|
|
Date is the first day of the quarter. |
|
|
Date is the last day of the quarter. |
|
|
Date is the first day of the year. |
|
|
Date is the last day of the year. |
|
|
Date is in a leap year. |
|
Usage Examples#
Example 1: Filtering Nodes with Numeric Conditions
from graphistry import n, gt, lt
# Find nodes where age is greater than 18 and less than 30
g_filtered = g.chain([
n({ "age": gt(18) }),
n({ "age": lt(30) })
])
Example 2: Filtering Nodes by Category
from graphistry import n, is_in
# Find nodes of type 'person' or 'company'
g_filtered = g.chain([
n({ "type": is_in(["person", "company"]) })
])
Example 3: Filtering Edges with String Conditions
from graphistry import e_forward, contains
# Find edges where the relation contains 'friend'
g_filtered = g.chain([
e_forward({ "relation": contains("friend") })
])
Example 4: Combining Multiple Predicates
from graphistry import n, eq, gt
# Find 'person' nodes with age greater than 18
g_filtered = g.chain([
n({
"type": eq("person"),
"age": gt(18)
})
])
Additional Notes#
Lambda Functions: You can use lambda functions for custom conditions.
n({ "score": lambda x: (x > 50) & (x % 2 == 0) })
Importing Operators: Remember to import the necessary functions.
from graphistry import n, e_forward, gt, contains
Combining Conditions: Use logical operators within lambdas for complex expressions.
n({ "age": lambda x: (x > 18) & (x < 65) })
Predicates Module: Operators are available in the graphistry.predicates module.