I use and recommend visidata.
It plays well with the shell – e.g. you can stick it at the end of your pipe. If
bzcat foo.bz2|sort|uniq -c|sort -nr | awk -f munge.awk |blah
produces a tsv, then
bzcat foo.bz2|sort|uniq -c|sort -nr | awk -f munge.awk |blah|vd
makes that tsv into an interactive (if you think ncurses is interactive) spreadsheet with plotting and pivot tables and mouse support :)

You can add columns with Python expressions referring to other columns, or extend it with plugins. You can diff two csv's.
You can also save your keypresses in vd to a file and then re-run them at a later stage – I've got some scripts to re-run an analysis and then run vd on it and immediately set all columns to floats and open the frequency table so I can see if I managed to lower the median this time.
The docs and tutorials from the home page are pretty good, but if you learn better by watching than reading, there's a series of visdata youtube tutorials and showcases by the author.
See also https://github.com/YS-L/csvlens which seems similar.