Pandas Iat String
Grab one cell out of a DataFrame as text
- dataframe
- STRING
The read-only sibling of the pack's cell-editing nodes. PandasIatString pulls one cell out of a DataFrame by integer position and hands it to you as a string - no mutations, no surprises. If you've built a data pipeline in ComfyUI and need to pluck a single value to display, feed into another node, or check before an operation, this is the node.
It's part of HowToSD's ComfyUI-Data-Analysis pack, Hide Inada's collection that wraps pandas, matplotlib, and seaborn into ComfyUI nodes. Same no-GPU, no-model story as the rest of the pack.
How it works
Under the hood: value = dataframe.iat[row_integer_position, column_integer_position], returned as a STRING. .iat is pandas' position-based accessor - 0-based physical row and column, not labels. The distinction matters: if your DataFrame's index is dates or names, .iat still counts rows from 0, so row 2 is the third row.
One nuance worth knowing: despite the "String" in the name, the underlying cell value is whatever's in the table - a number, a datetime, a bool. The node returns it on a STRING socket, so ComfyUI converts it to text for you. The pack's own docs describe it as "select a cell and output as a string," which is what you get. If the cell is 42, you get "42".
The inputs that matter
- dataframe - the table to read from.
- row_integer_position and column_integer_position - both default to 0 and are 0-based. This is the classic footgun: if you don't set them, you're always reading cell [0, 0].
Output is a single STRING, which you can wire into any text display node, a text processor, or a condition for downstream logic.
Installing it
Same for every node in this pack. Fastest via ComfyUI Manager: search "ComfyUI-Data-Analysis", install, restart - it pulls in pandas, matplotlib, seaborn, scipy, scikit-learn, openpyxl, and lxml for you. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/HowToSD/ComfyUI-Data-Analysis.git
pip install -r requirements.txt
Then rename the folder to data-analysis if you want the bundled example workflows to work. License is a custom non-commercial one: personal/academic use is fine, commercial use needs written permission from the author.
Gotchas
Out-of-range positions raise an IndexError, which fails the whole run - there's no silent empty string. And because it returns text, don't pipe it straight into a math node expecting a number; convert with one of the pack's string-to-number nodes (PyStringToFloat / PyStringToInt) if you need arithmetic. For anything heavier than a single cell - a whole column, a whole row - grab Pandas Select Columns or Pandas Iloc Row Series instead; this node is deliberately, usefully small.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| dataframe | DATAFRAME | — | |
| row_integer_position | INT | 00–2147483648 | — |
| column_integer_position | INT | 00–2147483648 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |