at
Builtin index · Collections & strings
result =at(t, i)ort.at(i)
Input: t, i · Output: result
What it is
t is a Table; i is a number (0-based row position).
Overloads
One call shape — this function is not overloaded.
| Code | Input | Output | Description |
result = at(t, i) or t.at(i) | t Tablet is a Table.i numberi is a number (0-based row position). | result Record or string | Returns a Record: one row of the table by position, always positional even when the table carries a string index. |
Examples
From the documentation, and run by the build -- the output and the figure below are what the engine actually produced. Simplest first.
df = DataFrame(id=[1, 2, 3], name=["alu", "steel", "brass"])
print(at(df, 1)) # {id = 2, name = "steel"}
labeled = index(df, "name")
print(labeled)
grown = insert_row(df, 3, {id=4, name="glass"})
print(grown)
{id = 2, name = "steel"}
id name
-- -----
1 alu
2 steel
3 brass
id name
-- -----
1 alu
2 steel
3 brass
4 glassfrom collections-strings
How it works
t.at(i) (§ table row index, 2026-08-26) — ALWAYS positional row access (pandas' .iloc), regardless of whatever custom index by/.index() index is currently set on t. This is the one way to resolve the ambiguity between "index value" and "row position" once a custom index exists: t[key] (bracket syntax, eval_index's Value::Table arm) reads through the custom index when one is set, .at(i) never does.
From the note above this builtin in the interpreter, where the reasoning was written down as it was built.