Skip to main content

Describe Sheet and Data Profiling

The Describe Sheet (Shift+I) gives you a statistical profile of every column in one keystroke — null counts, distinct values, min, max, mean, and standard deviation. It is the fastest way to understand what's in an unfamiliar dataset before analysis.

Learning Focus

Run Shift+I immediately after opening any new dataset. It reveals type problems, null distributions, and outlier ranges in under 5 seconds — before you write a single filter.

Sample Data Used in This Lesson

cat > ~/github/practice-folder/visidata/01-loading/01-employees.csv << 'EOF'
name,department,salary,hire_date,email
Alice,Engineering,85000,2020-03-15,alice@company.com
Bob,Marketing,70000,2019-11-01,bob@company.com
Charlie,Engineering,90000,2021-06-20,charlie@company.com
Dina,HR,,2020-08-10,dina@company.com
Eve,Marketing,62000,2018-04-05,
EOF

vd ~/github/practice-folder/visidata/01-loading/01-employees.csv

Open the Describe Sheet

Shift+I

Result — statistical profile of all columns:

name type count nulls distinct min max
name str 5 0 5
department str 5 0 3
salary str 4 1 4 62000 90000 ← nulls=1 means Dina has no salary
hire_date str 5 0 5 2018-04-05 2021-06-20
email str 4 1 4 ← Eve has no email
warning

Column types show as str until you cast them. Cast salary to % (float) first to get meaningful min/max/mean.


Cast Types First, Then Describe

# Press q to return to source sheet
# Move to 'salary' → press % (float)
# Move to 'hire_date' → press @ (date)
# Press Shift+I again

Describe Sheet after casting:

name type count nulls min max mean stdev
name str 5 0
department str 5 0
salary float 4 1 62000.0 90000.0 76750.0 11932.2
hire_date date 5 0 2018-04-05 2021-06-20
email str 4 1

Now salary shows mean (76750) and stdev (11932). One null visible immediately.


Drill Into a Column from Describe Sheet

# Inside Describe Sheet, move to 'salary' row
Enter
# Opens Frequency Sheet for salary column

Use this to see the value distribution of any column without leaving the profiling view.


Find Columns with Nulls

# Inside Describe Sheet:
# Move to 'nulls' column
# Sort descending
]
# Columns with most nulls appear first

Result:

name nulls
salary 1 ← Dina has no salary
email 1 ← Eve has no email
name 0
department 0
hire_date 0

Quick Statistics Without Full Describe (zF)

zF shows a one-line summary in the status bar for the current column only:

# Move to 'salary' column
zF
# Status bar shows: count=4 nulls=1 min=62000 max=90000 mean=76750 stdev=11932

Use zF for a quick sanity check on a single column without leaving the source sheet.


Describe Sheet vs Frequency Table

FeatureDescribe Sheet (Shift+I)Frequency Table (Shift+F)
ScopeAll columns at onceOne column
ShowsNull count, type, min/max/meanValue counts, percentages, histogram
Best forInitial data auditGroup-level distribution
KeyShift+IShift+F

Key Reference

KeyAction
Shift+IOpen Describe Sheet (all columns)
EnterOpen Frequency Table for highlighted column
qReturn to source sheet
zFQuick stats for current column in status bar
]Sort by a column (e.g., by nulls descending)

Hands-On Practice

vd ~/github/practice-folder/visidata/01-loading/01-employees.csv

# 1. Press Shift+I → view the profile (all types show as str)
# 2. Press q → return to source
# 3. Move to 'salary' → press % (float)
# 4. Move to 'hire_date' → press @ (date)
# 5. Press Shift+I again → see mean, stdev, nulls for salary
# 6. Move to 'nulls' column → press ] → sort to find columns with most nulls
# 7. Move to 'salary' row → press Enter → see salary frequency table
# 8. Press q twice → back to source
# 9. Move to 'salary' column → press zF → quick stats in status bar

What's Next