Visidata — это мощный инструмент для работы с табличными данными в терминале. Если вы работаете с большими объемами данных или часто сталкиваетесь с файлами форматов CSV, TSV, XLS/XLSX, SQLite или JSON (и не только - полный список форматов тутто этот инструмент может стать вашим лучшим другом. В этой статье я расскажу о 10 причинах, почему я считаю Visidata незаменимым.

Основные преимущества Visidata

  1. Поддержка множества форматов данных
    Visidata поддерживает работу с популярными форматами данных: CSV, TSV, Excel (XLS/XLSX), SQLite и даже Apache Arrow. Кроме того, вы можете быстро и эффективно конвертировать данные из одного формата в другой в формате bash pipelines.

    Visidata default view

  2. Скорость и производительность
    Даже при работе с большими файлами Visidata остается быстрым и отзывчивым. Visidata откроет файл, если он помещается в вашу оперативную память. Для современного компьютера аналитика с 32Gb оперативки можно открыть файл в 20-25Gb. Правда комфортно работать с файлами примерно до 5-10Gb - если нужно больше, то это уже pandas, polaris ну или DuckDB .

  3. Работа в терминале Если вы привыкли работать в терминале, не любите отрывать руки от клавиатуры, а ваша мышка покрылась пылю где-то под столом, то этот инструмент точно для вас. Это безумно удобно - все действия выполняются при помощи горячих клавиш, что позволяет сосредоточиться на осознании данных, а не на том, чтобы найти нужную кнопочку в интерфейсе. Минусы тоже есть - горячие клавиши нужно выучить, но это довольно просто.

  4. Мощные функции фильтрации и сортировки
    Сортировка и фильтрация производится нажатием одной кнопки на клавиатуре. Это намного удобнее, чем в других инструментах. Просто нажмите [ для того чтобы отсортировать столбец ASC и ] чтобы выполнить сортировку DESC. Фильтрация доступна как по регулярному выражению, так и по выражению python. Можно написать например year >= 2024 and popularity > 10, чтобы выбрать то, что вам нужно, но сильно быстрее, чем вы бы писали такое же выражение в pandas.

  5. Мощные инструменты для агрегации
    Не менее мощным инструментом в Visidata являются быстрые агрегации. Например можно быстро сгруппировать данные по какому-то столбцу, просто нажав Shift+F. По дефолту построится агрегация count с процентом от общего количества и гистограммой, но мы можем добавить практически любую агрегационную функцию для того, чтобы посчитать и ее. Так же можно просто получить pivot table нажатием сочетания Shift+W:

    Тут мы легко и быстро получили количество выпущенных синглов для каждого исполнителя по годам. Видно, что Bruno Mars и Coldplay проснулись после 10 и 6 лет соответсвенно.

  6. Объединение таблиц
    Visidata позволяет открывать несколько CSV/TSV файлов и производить над ними операции JOIN и UNION. Если вы открываете xlsx или sqlite3 файлы, то у вас сразу появится такая возможность, потому что эти форматы содержат более одной таблицы. Это невероятно мощный инструмент.

  7. Множество дополнительных функций, которые так нужны при работе с данными Visidata позволяет работать с разными типами данных, используя специфические методы python для этого, например str.replace. При работе с вложенными структурами, например JSON, вы можете легко их достать на уровень основной таблицы. Нужно произвести дедупликацию данных - для этого так же есть очень удобная встроенная функция.

  8. Расширяемость через Python
    Visidata - приложение и библиотека, написанные на Python. Visidata использует дополнительные библиотеки python, чтобы дать вам больше прекрасных функций. Например если вы хотите открывать arrow файлы, вам нужно будет установить pyarrow Поэтому, хотя на официальном сайте есть много вариантов установки, я бы рекомендовал вариант через pip install - это позволит удобно контролировать установку расширений и их версий.

  9. Кроссплатформенность
    Приложение работает на Linux, macOS и Windows (через WSL), что делает его доступным практически для всех.

  10. Открытый исходный код и активное сообщество
    Visidata — это проект с открытым исходным кодом. Он активно развивается, сообщество постоянно добавляет туда новые функции. Так же вы можете предложить свои улучшения или написать собственный плагин, если вам кажется, что вам не хватает какого-то функционала.


Visidata - один из моих наиболее любимых инструментов для анализа данных. Хотя он подходит не для всех задач, там, где его можно использовать я стараюсь это делать, так как это позволяет быстрее найти закономерности в данных, произвести множество видов ad-hoc исследований, которые составляют существенную долю от работы аналитика.

В будущих статьях я разберу более детальные кейсы использования Visidata в работе.