Profile a CSV dataset
Per column: null count, a heuristic majority type (integer/float/boolean/string, over non-empty cells), and cardinality (distinct non-null values). Read-only. Nothing is changed. Quote-aware. A record with a quoted field containing a literal newline counts as one record. Runs entirely on your device.
Runs on your device. The file is never uploaded.
Profile a CSV dataset prints a row per column with its name, empty-cell count, inferred type and cardinality. The type is a majority vote over non-empty cells: integer, float, boolean or string. An empty cell is the only thing counted as null, so a column of the text NA reports none at all.
Questions
What does it tell me about each column?
Four things, as an aligned table: the column name, how many cells are empty, a single inferred type, and the cardinality, meaning the number of distinct non-empty values. Above the table it prints the shape of the file, its row count and column count. Nothing is written to a file; the report is the output.
How reliable is the type it reports?
It is a majority vote, not a schema. Each non-empty cell is matched against simple patterns for integer, float and boolean, and anything else counts as string; whichever bucket wins is what the column is called. CSV has no type system, so a column of mostly numbers with a few words in it still reports as integer. A column with nothing but empty cells reports as empty.
Does it change my file?
No. This is read only. It parses the CSV, counts what it finds and prints a report, and produces no output file at all, so it is safe to point at anything you have not looked at yet. If you want a file back rather than a report, the CSV tools that rewrite, such as Reorder / insert CSV columns, are the ones to reach for.
What counts as a null?
An empty cell. There is no notion of a NULL keyword or a placeholder such as NA, so a column full of the text NA reports zero nulls and a cardinality of one. Missing cells in short rows are read as empty and counted as nulls too.
What if my file has no header?
Turn hasHeader off and the columns are named col1, col2 and so on, with every row treated as data. With hasHeader on, which is the default, the first row supplies the names and is excluded from the counts. A file with a header and no data rows is refused with "no data rows".
How large a dataset can it profile?
There is no fixed limit, but the whole CSV is parsed into memory and a set of distinct values is held per column while cardinality is counted, so a wide file of mostly unique values is the heaviest case. Everything runs on your device with no upload, so your own memory is the ceiling.