ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

VisiData 终端电子表格工作坊指南:从零上手到数据探索大师

VisiData 终端电子表格工作坊指南:从零上手到数据探索大师 数据分析CLI数据可视化【免费下载链接】visidataA terminal spreadsheet multitool for discovering and arranging data项目地址https://gitcode.com/gh_mirrors/vi/visidata点击查看免费下载本指南基于 VisiData 官方工作坊提纲dev/workshop-outline.md整理而成系统覆盖了从安装、基础操作、Vim 风格移动与搜索、行选择、列与类型、聚合统计、正则与派生列、Python 表达式到命令日志Cmdlog录制回放与宏的完整知识链路。读完本指南你将掌握 VisiData 的核心按键体系与工作流能够像操作电子表格一样在终端中即时浏览、筛选、变换和导出任意结构的数据文件。VisiData 是什么终端里的“电子表格多工具”VisiData 是一款运行在终端中的交互式“电子表格”工具用于发现与整理数据terminal spreadsheet multitool for discovering and arranging data。工作坊提纲开头用四句话概括了它的定位与背景它是一个终端“电子表格”terminal spreadsheet所有界面绘制在字符终端内不依赖 GUI它只需要Python 3且零强制依赖python3, *no dependencies核心即可开箱即用VisiData 1.0 诞生于 **2017 年的 sabbatical休假年**期间采用GPL3 许可证发布官方在提纲中明确呼吁社区贡献尤其是加载器loaders与工作流workflows——这正是它“让数据再次变得有趣”makes data fun again的开放生态基础。从仓库结构看这一“生态”并非虚言visidata/loaders/目录下包含 64 个加载器模块覆盖 csv/tsv、json/jsonl、xlsx/ods、sqlite、hdf5、parquet、numpy、stata、sas、xml、yaml、toml、msgpack、固定宽度文件乃至 PNG、shapefile、pcap 等格式参见 visidata/loadersvisidata/features/下另有 58 个特性模块如正则派生列、频率表、描述统计、展开列等为工作坊提纲中的绝大多数快捷键提供了底层实现。第 0 步安装与依赖工作坊的安装流程非常简单安装 Python 3macOS 上安装 Python3 官方.dmg即可其中已自带pip3安装 VisiData 本体执行pip3 install visidata或从 git 仓库克隆后本地运行按需补充加载器依赖某些文件格式需要额外的第三方库例如 Excel 需要pip3 install openpyxl。VisiData 会在加载对应格式时提示缺少的依赖。仓库内还提供了其他安装途径可供参考setup.py定义了标准的 pip 打包配置dev/visidata-brew.rb提供了 Homebrew 打包配方platform/windows/vdwin-installer.md说明了 Windows 安装方式requirements.txt列出了核心运行依赖requirements.scm则面向源码管理SCM安装场景。安装完成后在终端输入vd并跟上一个文件路径即可打开数据文件例如vd sample_data/benchmark.csv仓库 sample_data 目录下有大量可用于练习的示例数据。第 1 步基础操作与退出工作坊先教会两件最简单的事q退出当前 sheet表格视图。反复按q会逐层退出并最终退出 VisiData^CCtrlC中断当前操作。当某个命令如正则搜索或大数据集重载执行时间过长时用^C安全打断。这两个键是“钓鱼”式体验工作坊原话为 Basics/Fishing——先让你能进能退才有安全感去探索。第 2 步立即可获得回报的操作工作坊称之为 “Immediately Rewarding”立刻有成就感的一组按键按键功能源码依据F/EnterF打开频率表Frequency Table按当前列分组并聚合其他列Enter打开当前行dive下钻F见 visidata/freqtbl.pyEnter见 visidata/pyobj.pye编辑当前单元格visidata/sheets.py-隐藏当前列visidata/features/layout.py_切换当前列宽度为“最大宽度 / 默认宽度”visidata/features/layout.py[/]按当前列升序 / 降序排序并替换已有排序条件visidata/sort.py^S保存当前 sheet会提示输出文件名按扩展名推断格式visidata/save.py这些按键共同构成了“打开文件 → 排序 → 编辑 → 保存”的最小闭环让第一次使用者几分钟内就能完成一次真实的数据处理。第 3 步Vim 风格的移动与搜索VisiData 的移动与搜索完全采用 Vim 习惯hjkl左 / 下 / 上 / 右移动光标见 visidata/movement.py/与?在当前列中向后 / 向前正则搜索n/N跳到下一个 / 上一个匹配见 visidata/features/hlsearch.py 与 visidata/search.pyg前缀把移动和搜索放大到全局。例如gj/gk跳到底部 / 顶部gh/gl跳到最左 / 最右列见 visidata/movement.pyg/与g?则在所有可见列中向前 / 向后搜索见 visidata/features/hlsearch.py^HCtrlH打开手册manpageF1仍然可用见 visidata/help.py 与 visidata/menu.pyz^H打开上下文相关的命令列表help-commands等价绑定zBksp见 visidata/help.py——只显示当前 sheet 可用的命令^E查看最近一次错误的完整 traceback见 visidata/textsheet.py。工作坊在此处留下了一句关键点评原文标注为 saul 的提示“即便你只学会了以上这些你也已经拥有一把好用的工具在手。”换句话说移动 搜索 退出就足以覆盖日常浏览的大部分场景。第 4 步行选择Selection选择是 VisiData 数据整理的起点按键集中在 visidata/selection.py按键功能s/t/u选择 / 切换选择 / 取消选择当前行并自动下移一行L211-L213gs/gt/gu选择 / 切换 / 取消选择所有行L215-L217\|/\按正则选择 / 取消选择当前列中匹配的行L229-L230打开重复 sheetduplicate sheet只包含已选行visidata/sheets.py,scoop选择当前列中与当前单元格显示值相等的所有行L234{/}跳到上一个 / 下一个已选行visidata/movement.pygd删除所有已选行visidata/clipboard.pyge将已选行的当前列统一设置为同一个输入值setcol-inputvisidata/sheets.pyg*对已选行的当前列做正则替换见下一节其中,scoop是工作坊特别标注的选择技巧光标停在一个值上按,即可把所有“长得一样”的行全部抓出来随后生成子表或gd删除非常适合快速清洗重复数据。工作坊在这里给出了第二句里程碑点评anja 的提示“如果你现在离开你手里也已经有一把好用的工具了。”言下之意仅凭“浏览 选择 生成子表”的组合VisiData 已经能完成很多实际工作。第 5 步列基础Column Basics这一节围绕列的属性与类型展开源码见 visidata/sheets.py!把当前列切换为键列key column——键列决定行的唯一标识也是 dive、join、频率表分组等操作的默认依据key-col命令L1292~/#/$/%/分别把当前列类型设为字符串str/ 整数int/ 货币currency/ 浮点数float/ 日期date。工作坊特意提醒这些列命令和^一样全部位于数字键上shift数字。其中$与的具体实现见 visidata/type_currency.py 与 visidata/type_date.pygF按所有键列打开频率表freq-keysvisidata/freqtbl.py——当你用!定义了多个键列后gF可按组合键分组C打开Columns Sheet列属性表以表格形式查看并编辑所有列的属性如类型、宽度、格式串、名称等visidata/metasheets.py。第 6 步聚合器AggregatorsI打开Describe Sheet描述统计表一次性给出当前 sheet 所有可见列的最小值、最大值、均值、标准差等统计量describe-sheet见 visidata/features/describe.pygI可对所有 stack 中的 sheet 做描述统计IndexSheet上还有按已选 sheet 描述的变体给当前列添加聚合列aggregate-col。按后输入聚合器名如sum mean median min max std等VisiData 会新建一列以列名_聚合器名命名并填充聚合结果g可一次性为多个列添加聚合见 visidata/aggregators.py。聚合器的扩展能力也在 visidata/guides/AggregatorsSheet.md 中有说明例如要新增一个计算“极差max − min”的聚合器只需在.visidatarc中添加相应定义即可体现了 VisiData 的“可编程电子表格”设计。第 7 步正则与派生列这是 VisiData 的招牌能力之一实现在 visidata/features/regex.py按键功能说明:按正则拆分列addcol-split提示输入 split regex将当前列按匹配位置拆成多列;按正则捕获列addcol-capture提示输入 capture regex用捕获组生成新列*正则替换生成新列addcol-regex-subst将当前列中匹配search的部分替换为replace支持\1反向引用g*对已选行直接做正则替换setcol-regex-subst就地修改数据而非新建列而在 visidata/expr.py 中创建派生列addcol-expr。提示输入 Python 表达式表达式内直接以列名作为变量使用例如col1 col2、len(name)。VisiData 会基于当前列上下文求值生成一个新列。由于表达式是 Python函数、字符串方法、数学运算等全部可用——这使 VisiData 兼具“电子表格”与“Python REPL”的双重身份。第 8 步Python 集成工作坊第 8 节把 Python 能力划分为两块1. 表达式搜索 / 选择z前缀 符号键z/与z?按 Python 表达式在当前列向前 / 向后搜索visidata/search.py。例如在数值列中搜x 1000在文本列中搜x.startswith(foo)z|与z\按 Python 表达式选择 / 取消选择所有可见列中匹配的行visidata/selection.py。表达式同样以列名为变量可在任意列上引用例如select by expr:提示下输入price*qty 10000。2..visidatarc配置文件工作坊明确列出.visidatarc的三类用途options选项集中设置全局选项优先级上.visidatarc的覆盖先于命令行选项见 visidata/settings.pyfunctions函数在.visidatarc中定义的函数可在派生列等 Python 表达式中直接调用visidata/man/vd.inc 明确说明 Functions defined in .visidatarc are available in python expressionscommands / bindkeys命令与键位绑定通过addCommand与bindkey自定义新命令和快捷键。VisiData 启动时会在$HOME下查找.visidatarc若存在则对其内容执行exec()visidata/man/vd.inc。仓库内可以找到大量.visidatarc用法实例例如visidata/experimental/vimcompat.py开头注释说明“在 .visidatarc 中import visidata.experimental.vimcompat启用 Vim 兼容移动”visidata/loaders/f5log.py展示了用vd.options.set(...)写入配置visidata/apps/vdsql/test.sh中的测试甚至使用--config tests/.visidatarc传入自定义配置。OptionsSheet中还提供了save_visidatarc命令可直接把当前所有选项设置导出写入.visidatarcvisidata/metasheets.py。第 9 步Cmdlog命令日志——录制与回放Cmdlog 是 VisiData 实现“可复现数据处理”的机制核心实现在 visidata/cmdlog.py保存save按^Dsave-cmdlog把本次会话的所有命令记录保存为.vdj文件visidata/cmdlog.py。注意部分命令带有replayFalse标记如编辑类、打开外部编辑器类不会写入日志回放replay命令行用vd --play cmdlog.vdj [--batch] [-w waitsecs] [-o output]回放日志参数定义见 visidata/main.py。--batch模式下无界面、状态输出到 stdout配合-o可在回放结束后把最终可见 sheet 保存到指定文件适合自动化-p/-b/-P/-w分别是--play/--batch/--preplay/--replay_wait的别名visidata/main.py宏macrosVisiData 支持把一段操作录制为宏后回放。仓库 tests/macros 目录下既有宏录制测试脚本test_macro.vd也有对应的 golden 输出展示了宏录制 → 回放 → 断言输出的完整测试链路cmdlog.py中还内置了macro命令与“replay 中再次 replay”的嵌套支持见 visidata/cmdlog.py 的注释。此外还有两个实用回放参数--replay_ignore_errors让回放在出错时继续而非中止visidata/cmdlog.py-w可控制两条重放命令之间的等待秒数便于观察回放过程。第 10 步额外功能Extras工作坊最后一节以“彩蛋”收尾Y把当前行所有可见列复制到系统剪贴板syscopy-rowvisidata/clipboard.py使用options.clipboard_copy_cmd指定的命令实现——终端里也能“复制粘贴行”.dot对当前数值列绘图plot-columnvisidata/graph.py。以键列作为 x 轴当前数值列作为 y 轴生成 ASCII 图形g.可对所有可见数值列绘图按q返回表格。仓库还提供了 sample_data/benchmark.csv 等适合绘图的数值型示例数据pipe into管道VisiData 可作为管道的一环参与 shell 管道例如cat data.tsv | vd -或vd file.csv | cut -f2实现与其他命令行工具的互操作vd --diff比较两个数据集的差异。仓库内 visidata/experimental/diff_sheet.py 实现了差异着色与--diff源不同的值用color_diff红色显示新增的行 / 列用color_diff_add黄色显示并提供了setdiff-sheet命令把当前 sheet 设为后续 sheet 的 diff 基准so many things工作坊以“还有太多太多”收尾——事实上仓库 visidata/features 与 visidata/experimental 下还有展开/收缩列、频率表下钻、join、melt、unfurl、随机采样、条件格式condfmt、进度条、外部编辑器、状态历史、命令面板长命令名执行等大量能力均可通过^H手册与z^H上下文命令列表随时查阅。结论从“钓鱼”到“大师”的渐进路径回顾整条工作坊路线可以提炼出 VisiData 的学习哲学先用最少的按键获得正反馈浏览、排序、保存再逐步叠加选择、类型、聚合、正则、Python 表达式等“重武器”最终用 Cmdlog 和宏把整个流程固化、复用和自动化。工作坊两处“你随时可以离开但工具依然好用”的点评正说明这种渐进式设计的精妙——每一层能力都是独立完整、即时可用的而叠加起来则构成一个可编程、可复现、可扩展的终端数据处理环境。如需继续深入仓库内还有更系统的学习资源交互式命令手册可随时按^H打开docs 目录下的usage.md、columns.md、rows.md、loading.md、formats.md、save-restore.md等文档分别对应格式加载、列操作、行操作、保存回放等专题dev/checklists 提供了添加命令、添加聚合器等贡献者的开发清单tests 目录则包含上千个可运行的测试用例如 tests/test-smoke.sh、tests/test-save.sh既是回归保障也是学习各功能精确行为的活教材。赞分享数据分析CLI数据可视化【免费下载链接】visidataA terminal spreadsheet multitool for discovering and arranging data项目地址https://gitcode.com/gh_mirrors/vi/visidata点击查看免费下载相关推荐Cerbero-7b商业应用终极指南意大利语客服与内容生成实战案例 Cerbero 7b商业应用终极指南意大利语客服与内容生成实战案例 Cerbero 7b 作为首个完全开源免费的意大利语大型语言模型正在彻底改变意大利终极x-spreadsheet使用指南从零开始快速上手JavaScript电子表格终极x spreadsheet使用指南从零开始快速上手JavaScript电子表格 想要在网页中嵌入功能强大的电子表格吗x spreadsheet正是你需要前端UI组件Mi-Create小米手表表盘制作终极指南从零基础到设计大师Mi Create小米手表表盘制作终极指南从零基础到设计大师 还在为小米手表找不到心仪的表盘而烦恼吗想要打造专属的个性化表盘却不知从何入手Mi Creat桌面应用开发工具上一篇3D-Force-Graph 树状图可视化实现解析下一篇PyWebView项目架构解析三种应用构建方式详解创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表