Sorting and Filtering¶
Now that you have a grasp of sheets, rows, and columns, let’s move on to the most basic of dataset operations: sorting and filtering rows.
How to sort rows¶
The keys [ and ] sort rows in ascending and descending order, respectively.
For instance, you could do the following with the FAA dataset:
- Navigate to the
COST_REPAIRS
column - Press # (if you haven’t already) to tell VisiData it’s a numeric column
- Press ] to sort the column in descending order — i.e., from highest to lowest
After that, you should see something like the following:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men <HEIGHT │ SPEED │ SPECIES │ BIRDS_STRUCK │ EFFECT │ DAMAGE │↓COST_REPAIRS#│> 0 │ 143 │ Red-tailed hawk │ 1 │ Engine Shut Down │ S │ 6500000 │A 25 │ │ Gadwall │ 2-10 │ Precautionary Land…│ S │ 5818528 │A │ │ Mallard │ 1 │ None │ S │ 5548924 │A 0 │ │ Gray partridge │ 2-10 │ Precautionary Land…│ S │ 5427992 │A 5000 │ │ American white pel…│ 2-10 │ Engine Shut Down │ S │ 5111000 │ 250 │ 150 │ American coot │ 1 │ Engine Shut Down │ S │ 5000000 │A 972 │ 180 │ Northern pintail │ 2-10 │ Engine Shut Down │ S │ 5000000 │A 0 │ 96 │ Red-tailed hawk │ 2-10 │ Engine Shut Down │ S │ 4600279 │A 10 │ 160 │ Bald eagle │ 1 │ Precautionary Land…│ S │ 4500000 │ 400 │ 170 │ Canada goose │ 2-10 │ Precautionary Land…│ S │ 3909837 │A 10 │ 130 │ Rock pigeon │ 11-100 │ Precautionary Land…│ S │ 3250000 │P 2000 │ 230 │ Greater white-fron…│ 2-10 │ Precautionary Land…│ S │ 3228053 │A 90 │ 141 │ Mallard │ 2-10 │ Precautionary Land…│ S │ 3000000 │A 0 │ 120 │ Bald eagle │ 1 │ Engine Shut Down │ S │ 2900000 │A 8500 │ │ Snow goose │ 11-100 │ Precautionary Land…│ S │ 2737462 │A 0 │ │ Red-tailed hawk │ 1 │ Precautionary Land…│ S │ 2300000 │A 1200 │ 190 │ Turkey vulture │ 2-10 │ Precautionary Land…│ S │ 2000000 │A 400 │ 160 │ Unknown bird - med…│ 1 │ Engine Shut Down │ S │ 2000000 │P 2000 │ 220 │ Black vulture │ 1 │ Engine Shut Down │ S │ 2000000 │A │ │ Brown thrasher │ 1 │ None │ M │ 2000000 │A 1000 │ 140 │ Great black-backed…│ 1 │ │ S │ 1529013 │A 1› faa-wildlife-strikes| ] sort-desc 73448 rows
Tip
You can sort on multiple columns at once by “key”-ing those columns (via !) and then typing either g[ (ascending) or g] (descending).
How to filter rows¶
VisiData provides several ways to filter your datasets:
- Row selection + "
- Frequency tables + Enter
- Frequency tables + row selection + g + Enter
The sections below walk you through each approach.
Filtering selected rows with "¶
In VisiData, pressing " will create a copy of your current sheet — but one that contains only selected rows.
So, to view only wildlife strikes that involved hawks, you could do the following:
- Navigate to the
SPECIES
column - Press | to select by searching, then type
hawk
, and then press Enter
At this point, you should see something like the following:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men <STATE │ AIRPORT │ PHASE_OF_FLT │ HEIGHT │ SPEED │ SPECIES │ BIRDS_STRUCK │ > FL │ VERO BEACH MUNICIP…│ APPROACH │ │ │ Unknown bird │ 1 │ N AK │ KENAI MUNICIPAL AR…│ APPROACH │ │ │ Unknown bird │ 1 │ N TX │ DAVID WAYNE HOOKS …│ │ │ │ Unknown bird │ 1 │ N MO │ LAMBERT-ST LOUIS I…│ APPROACH │ │ │ Unknown bird │ 1 │ N FL │ POMPANO BEACH AIRP…│ LANDING ROLL │ 0 │ │ Unknown bird │ 1 │ VI │ HENRY E ROHLSEN AR…│ │ │ │ Unknown bird │ 1 │ O TX │ SAN ANTONIO INTL │ APPROACH │ │ │ Unknown bird │ 1 │ N TX │ LONE STAR EXECUTIV…│ DEPARTURE │ │ │ Unknown bird │ 1 │ P FL │ TAMPA INTL │ APPROACH │ 6000 │ │ Unknown bird │ 1 │ N MO │ LAMBERT-ST LOUIS I…│ APPROACH │ │ │ Owls │ 1 │ N •FL │ OPA-LOCKA EXECUTIV…│ APPROACH │ │ │ Hawks │ 1 │ N CA │ NORMAN Y. MINETA S…│ │ │ │ Gulls │ 1 │ N FL │ FORT LAUDERDALE/HO…│ APPROACH │ 1500 │ │ Unknown bird - sma…│ 1 │ N AR │ FORT SMITH REGIONA…│ CLIMB │ │ │ Unknown bird - sma…│ 1 │ N AR │ BILL AND HILLARY …│ LANDING ROLL │ 0 │ │ Unknown bird - sma…│ 1 │ N │ UNKNOWN │ En Route │ │ │ Unknown bird │ 1 │ P CA │ METRO OAKLAND INTL │ │ │ ┌─────────────────────────────| statuses |─┐ UT │ SALT LAKE CITY INTL│ │ │ │ search wrapped │ TX │ GEORGE BUSH INTERC…│ CLIMB │ │ │ 2164 matches for /hawk/ │ FL │ ORLANDO SANFORD IN…│ APPROACH │ │ │ selected 2164 rows │ IL │ CHICAGO O'HARE INT…│ CLIMB │ 12000 │ └──────────────────────────────────────────┘ 1› faa-wildlife-strikes| | select-col-regex 73448 rows •2164
Then, press ", which should give you something like the following:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men <STATE │ AIRPORT │ PHASE_OF_FLT │ HEIGHT │ SPEED │ SPECIES │ BIRDS_STRUCK │ > FL │ OPA-LOCKA EXECUTIV…│ APPROACH │ │ │ Hawks │ 1 │ N TX │ GEORGE BUSH INTERC…│ │ │ │ Red-tailed hawk │ 1 │ CO │ DENVER INTL AIRPORT│ Landing Roll │ 0 │ │ Ferruginous hawk │ 1 │ PR │ LUIS MUNOZ MARIN I…│ Landing Roll │ 0 │ │ Hawks │ 1 │ N GA │ DEKALB-PEACHTREE A…│ APPROACH │ │ │ Hawks │ 1 │ N OK │ RICHARD LLOYD JONE…│ APPROACH │ │ │ Hawks │ 1 │ N AR │ NW ARKANSAS REGION…│ DEPARTURE │ │ │ Hawks │ 1 │ N TX │ AUSTIN-BERGSTROM I…│ APPROACH │ │ │ Hawks │ 2-10 │ N IL │ QUAD CITY ARPT │ APPROACH │ │ │ Red-tailed hawk │ 1 │ N MO │ LAMBERT-ST LOUIS I…│ APPROACH │ 100 │ │ Hawks │ 1 │ N │ UNKNOWN │ En Route │ 500 │ 50 │ Hawks │ 1 │ P KY │ LOUISVILLE INTL AR…│ │ │ │ Red-tailed hawk │ 1 │ MO │ KANSAS CITY INTL │ │ │ │ Red-tailed hawk │ 1 │ NY │ JOHN F KENNEDY INTL│ Climb │ 20 │ 155 │ Red-tailed hawk │ 1 │ N UT │ SALT LAKE CITY INTL│ Approach │ 75 │ 140 │ Rough-legged hawk │ 1 │ N BC │ VANCOUVER INTL │ Take-off run │ 0 │ │ Rough-legged hawk │ 1 │ N MD │ BALTIMORE/WASH INT…│ Climb │ 100 │ │ Red-tailed hawk │ 1 │ N FL │ GAINESVILLE REG AR…│ │ │ │ Common nighthawk │ 1 │ CA │ LONG BEACH-DAUGH F…│ Landing Roll │ 0 │ │ Red-tailed hawk │ 1 │ N MD │ BALTIMORE/WASH INT…│ Take-off run │ 0 │ 140 │ Hawks │ 1 │ N IL │ CHICAGO O'HARE INT…│ │ │ │ Red-tailed hawk │ 1 │ 2› faa-wildlife-strikes_selectedref| " 2164 rows
Filtering via frequency tables¶
From any row in any frequency table, you can press Enter to create a new dataset containing only the rows that match that value.
For instance, to view only the wildlife strikes that occurred in California, we might do the following from the main data sheet:
- Navigate to the
STATE
column - Press Shift-F to create the frequency table
- Navigate down two rows, to the row for
CA
At which point, you should see something like this:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men STATE ║↓count♯│ percent%│ histogram ~║ ║ 9840 │ 13.40 │ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ║ TX ║ 7309 │ 9.95 │ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ║ CA ║ 5270 │ 7.18 │ ■■■■■■■■■■■■■■■■■■■■ ║ FL ║ 4902 │ 6.67 │ ■■■■■■■■■■■■■■■■■■ ║ CO ║ 3523 │ 4.80 │ ■■■■■■■■■■■■■ ║ NY ║ 3434 │ 4.68 │ ■■■■■■■■■■■■■ ║ IL ║ 3020 │ 4.11 │ ■■■■■■■■■■■ ║ PA ║ 2475 │ 3.37 │ ■■■■■■■■■ ║ TN ║ 2116 │ 2.88 │ ■■■■■■■■ ║ NJ ║ 2085 │ 2.84 │ ■■■■■■■■ ║ OH ║ 1914 │ 2.61 │ ■■■■■■■ ║ MO ║ 1633 │ 2.22 │ ■■■■■■ ║ NC ║ 1620 │ 2.21 │ ■■■■■■ ║ KY ║ 1548 │ 2.11 │ ■■■■■ ║ MI ║ 1532 │ 2.09 │ ■■■■■ ║ GA ║ 1247 │ 1.70 │ ■■■■ ║ UT ║ 1225 │ 1.67 │ ■■■■ ║ LA ║ 1182 │ 1.61 │ ■■■■ ║ IN ║ 1174 │ 1.60 │ ■■■■ ║ WA ║ 1089 │ 1.48 │ ■■■■ ║ HI ║ 1052 │ 1.43 │ ■■■■ ║ 3› faa-wildlife-strikes_STATE_freq| j go-down 63 bins
From there, pressing Enter should create the filtered sheet we wanted:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men <STATE │ AIRPORT │ PHASE_OF_FLT │ HEIGHT │ SPEED │ SPECIES │ BIRDS_STRUCK │ > CA │ NORMAN Y. MINETA S…│ │ │ │ Gulls │ 1 │ N CA │ METRO OAKLAND INTL │ │ │ │ Unknown bird │ 1 │ N CA │ LOS ANGELES INTL │ CLIMB │ │ │ Unknown bird │ 1 │ P CA │ LONG BEACH-DAUGH F…│ LANDING ROLL │ 0 │ │ Unknown bird │ 1 │ N CA │ NAPA COUNTY ARPT │ LANDING ROLL │ 0 │ │ Unknown bird │ 1 │ N CA │ HAYWARD EXECUTIVE …│ Climb │ │ │ Unknown bird - sma…│ 1 │ P CA │ ONTARIO INTL ARPT │ │ │ │ Owls │ 1 │ N CA │ LOS ANGELES INTL │ APPROACH │ │ │ Unknown bird │ 1 │ N CA │ LIVERMORE MUNICIPA…│ TAKE-OFF RUN │ 0 │ │ Unknown bird │ 2-10 │ N CA │ WHITEMAN AIRPORT │ LANDING ROLL │ 0 │ │ Rock pigeon │ 1 │ N CA │ LIVERMORE MUNICIPA…│ APPROACH │ │ │ Unknown bird │ 1 │ N CA │ JOHN WAYNE-ORANGE …│ APPROACH │ 1700 │ │ Unknown bird - med…│ 1 │ N CA │ CHINO AIRPORT │ │ │ │ Unknown bird │ 1 │ N CA │ SAN FRANCISCO INTL…│ LANDING ROLL │ 0 │ │ Unknown bird │ 1 │ N CA │ SACRAMENTO INTL │ APPROACH │ │ │ Unknown bird │ 1 │ N CA │ SANTA MONICA MUNIC…│ APPROACH │ 60 │ │ Unknown bird │ 1 │ N CA │ SACRAMENTO INTL │ │ │ │ Unknown bird │ 1 │ N CA │ SACRAMENTO INTL │ Climb │ 1500 │ 210 │ Northern pintail │ 2-10 │ P CA │ LOS ANGELES INTL │ Approach │ 900 │ 135 │ Unknown bird - med…│ 1 │ N CA │ SAN FRANCISCO INTL…│ Landing Roll │ 0 │ 90 │ Black-tailed jackr…│ 1 │ N CA │ SACRAMENTO INTL │ Approach │ 1000 │ 135 │ Northern pintail │ 1 │ N 4› faa-wildlife-strikes_CA| Enter 5270 rows
Using frequency tables to select (and filter) for multiple values¶
The approach above is great if you want to drill down on rows where a field equals one particular value. But what if you want to include a few different values? Select the rows of the frequency table you want to include, then press g + Enter.
Here’s a practical example, using the FAA dataset. Let’s say you want to filter for wildlife strikes at the five airports with the most reported incidents. To achieve that, you could take these steps:
- On the main data sheet navigate to the
AIRPORT
column, and press Shift-F to create a frequency table:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men AIRPORT ║↓count♯│ percent%│ histogram ~║ UNKNOWN ║ 8424 │ 11.47 │ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ║ DENVER INTL AIRPORT║ 2756 │ 3.75 │ ■■■■■■■■■■■■ ║ DALLAS/FORT WORTH …║ 2392 │ 3.26 │ ■■■■■■■■■■ ║ CHICAGO O'HARE INT…║ 1583 │ 2.16 │ ■■■■■■■ ║ JOHN F KENNEDY INTL║ 1302 │ 1.77 │ ■■■■■ ║ MEMPHIS INTL ║ 1217 │ 1.66 │ ■■■■■ ║ SALT LAKE CITY INTL║ 1179 │ 1.61 │ ■■■■■ ║ PHILADELPHIA INTL ║ 1131 │ 1.54 │ ■■■■■ ║ ORLANDO INTL ║ 1026 │ 1.40 │ ■■■■ ║ SACRAMENTO INTL ║ 1021 │ 1.39 │ ■■■■ ║ LA GUARDIA ARPT ║ 974 │ 1.33 │ ■■■■ ║ CHARLOTTE/DOUGLAS …║ 960 │ 1.31 │ ■■■■ ║ NEWARK LIBERTY INT…║ 917 │ 1.25 │ ■■■■ ║ LOUISVILLE INTL AR…║ 841 │ 1.15 │ ■■■ ║ AUSTIN-BERGSTROM I…║ 817 │ 1.11 │ ■■■ ║ LOUIE ARMSTRONG NE…║ 809 │ 1.10 │ ■■■ ║ KANSAS CITY INTL ║ 807 │ 1.10 │ ■■■ ║ HARTSFIELD - JACKS…║ 775 │ 1.06 │ ■■■ ║ GEORGE BUSH INTERC…║ 746 │ 1.02 │ ■■■ ║ DETROIT METRO WAYN…║ 734 │ 1.00 │ ■■■ ║ BALTIMORE/WASH INT…║ 691 │ 0.94 │ ■■■ ║ 5› faa-wildlife-strikes_AIRPORT_freq| processing… Shift+F 1512 bins
- Then, select the top five entries (skipping
UNKNOWN
) using s:
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men AIRPORT ║↓count♯│ percent%│ histogram ~║ UNKNOWN ║ 8424 │ 11.47 │ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ║ •DENVER INTL AIRPORT║ 2756 │ 3.75 │ ■■■■■■■■■■■■ ║ •DALLAS/FORT WORTH …║ 2392 │ 3.26 │ ■■■■■■■■■■ ║ •CHICAGO O'HARE INT…║ 1583 │ 2.16 │ ■■■■■■■ ║ •JOHN F KENNEDY INTL║ 1302 │ 1.77 │ ■■■■■ ║ •MEMPHIS INTL ║ 1217 │ 1.66 │ ■■■■■ ║ SALT LAKE CITY INTL║ 1179 │ 1.61 │ ■■■■■ ║ PHILADELPHIA INTL ║ 1131 │ 1.54 │ ■■■■■ ║ ORLANDO INTL ║ 1026 │ 1.40 │ ■■■■ ║ SACRAMENTO INTL ║ 1021 │ 1.39 │ ■■■■ ║ LA GUARDIA ARPT ║ 974 │ 1.33 │ ■■■■ ║ CHARLOTTE/DOUGLAS …║ 960 │ 1.31 │ ■■■■ ║ NEWARK LIBERTY INT…║ 917 │ 1.25 │ ■■■■ ║ LOUISVILLE INTL AR…║ 841 │ 1.15 │ ■■■ ║ AUSTIN-BERGSTROM I…║ 817 │ 1.11 │ ■■■ ║ LOUIE ARMSTRONG NE…║ 809 │ 1.10 │ ■■■ ║ KANSAS CITY INTL ║ 807 │ 1.10 │ ■■■ ║ HARTSFIELD - JACKS…║ 775 │ 1.06 │ ■■■ ║ GEORGE BUSH INTERC…║ 746 │ 1.02 │ ■■■ ┌─────────────────────────────| statuses |─┐ DETROIT METRO WAYN…║ 734 │ 1.00 │ ■■■ │ selected 1217 more rows │ BALTIMORE/WASH INT…║ 691 │ 0.94 │ ■■■ └──────────────────────────────────────────┘ 5› faa-wildlife-strikes_AIRPORT_freq| s select-row 1512 bins •5
- Next, press g + Enter. The result should look like this, with 9,250 rows (the total of those five airports):
File Edit View Column Row Data Plot System Help | VisiData 3.0.2 | Alt+H for help men <STATE │ AIRPORT │ PHASE_OF_FLT │ HEIGHT │ SPEED │ SPECIES │ BIRDS_STRUCK │ > CO │ DENVER INTL AIRPORT│ LANDING ROLL │ 0 │ │ Unknown bird │ 1 │ N CO │ DENVER INTL AIRPORT│ Approach │ │ │ Unknown bird │ 1 │ N CO │ DENVER INTL AIRPORT│ LANDING ROLL │ 0 │ │ Unknown bird │ 1 │ N CO │ DENVER INTL AIRPORT│ DEPARTURE │ │ │ Unknown bird - sma…│ 1 │ N CO │ DENVER INTL AIRPORT│ Landing Roll │ 0 │ │ Ferruginous hawk │ 1 │ CO │ DENVER INTL AIRPORT│ DEPARTURE │ │ │ Unknown bird - sma…│ 1 │ N CO │ DENVER INTL AIRPORT│ LANDING ROLL │ 0 │ │ Unknown bird - sma…│ 2-10 │ N CO │ DENVER INTL AIRPORT│ APPROACH │ │ │ Unknown bird │ 1 │ N CO │ DENVER INTL AIRPORT│ │ │ │ Northern harrier │ 1 │ CO │ DENVER INTL AIRPORT│ Take-off run │ 0 │ │ Unknown bird - med…│ 1 │ CO │ DENVER INTL AIRPORT│ │ │ │ Great horned owl │ 1 │ CO │ DENVER INTL AIRPORT│ │ │ │ Short-eared owl │ 1 │ CO │ DENVER INTL AIRPORT│ Approach │ │ │ Horned lark │ 1 │ CO │ DENVER INTL AIRPORT│ │ │ │ Horned lark │ 1 │ CO │ DENVER INTL AIRPORT│ Climb │ 500 │ 150 │ Unknown bird - sma…│ 1 │ N CO │ DENVER INTL AIRPORT│ │ │ │ Western meadowlark │ 1 │ CO │ DENVER INTL AIRPORT│ │ │ │ Western meadowlark │ 2-10 │ CO │ DENVER INTL AIRPORT│ Landing Roll │ 0 │ │ Mourning dove │ 1 │ CO │ DENVER INTL AIRPORT│ Take-off run │ 0 │ 145 │ Unknown bird - sma…│ 1 │ N CO │ DENVER INTL AIRPORT│ │ │ │ Red-tailed hawk │ 1 │ CO │ DENVER INTL AIRPORT│ │ │ │ Horned lark │ 1 │ 6› faa-wildlife-strikes_several| gEnter 9250 rows