数据分析:个人常用数据分析相关库库

239Views
No Comments

共计 2474 个字符,预计需要花费 7 分钟才能阅读完成。

Python数据领域中,大家最常用的可能还是 pandasnumpy 两个库。但奈何 pandas 对Excel的读取速度实在是太慢了,所以个人在基础环境下更倾向使用 Calamine 来进行excel的数据处理。

1. 读取速度最高的Excel库

在处理 xlsxxlsxlsbxlsm 格式文件时,速度是最重要的因素。以下是针对Excel读取速度最快的库:

库名称主要功能优势缺点推荐理由
Calamine基于Rust,支持读取XLSX、XLSB、XLS文件性能极快,特别适合大文件读取仅限读取,不支持写入极大Excel文件的读取利器
Openpyxl支持读取和写入Excel文件,主要处理XLSX文件功能全面,兼容性好性能较一般,较慢兼容性较好,支持Excel的多种操作
xlrd专门用于读取XLS文件读取XLS文件效率高不再支持XLSX,官方不再更新适合处理老旧的XLS文件
Pyxlsb处理Excel Binary格式(XLSB)处理大文件XLSB速度极快只支持XLSB格式,不支持XLSX或XLS如果数据量大且格式为XLSB时极为高效

推荐库:

  • Calamine:适合大规模Excel读取,性能最优。
  • Openpyxl:兼容性好,功能全面,适合需要兼顾读写的场景。
  • Pyxlsb:针对XLSB文件的读取非常高效。

2. 读取速度最高的CSV库

对于海量的CSV文件处理,以下是速度最快的CSV读取库推荐:

库名称主要功能优势缺点推荐理由
Polars支持多线程处理,极快的CSV读取速度多线程处理,性能极其优越兼容性不如pandas大型CSV文件读取的极佳选择
Pandas功能全面,兼容性好,支持CSV的多种处理功能丰富,兼容性好处理极大CSV文件时性能一般处理中小型CSV文件时功能完善
Vaex内存使用优化,处理TB级别CSV文件内存使用极其高效,支持延迟计算学习曲线稍陡,复杂度高适合大规模CSV文件的处理
csv-reader (rust)基于Rust的CSV读取库,速度极快速度极快,但并非Python原生库针对超大数据集的极致性能

推荐库:

  • Polars:最适合大规模数据集的高性能多线程读取。
  • Vaex:内存高效,适合处理TB级的CSV文件。
  • Pandas:功能最全的CSV库,适合中小数据集。

3. 写入速度最高的CSV、Excel库

针对数据的写入,特别是CSV和Excel文件,以下是写入速度最快的库推荐,并区分了CSV与Excel的不同需求:

3.1 CSV写入速度

库名称主要功能优势缺点推荐理由
Polars多线程处理,写入速度极快适合大规模数据的处理兼容性较少,功能较简单大规模数据的写入极快
Pandas支持多种CSV文件的写入,功能强大易于使用,功能全面处理超大文件时速度一般适合中等规模数据的写入
csv-writer (rust)高性能CSV写入库,基于Rust实现速度极快,适合写入极大数据集非Python原生库性能极高,适合超大数据的CSV写入

推荐库:

  • Polars:多线程写入CSV非常高效。
  • Pandas:功能强大,适合中小规模数据写入。
  • csv-writer (rust) :极大数据集的高效CSV写入选择。

3.2 Excel写入速度

库名称主要功能优势缺点推荐理由
XlsxWriter专门用于写入Excel文件,支持丰富的Excel格式性能极佳,支持格式化和图表仅支持写入,不支持读取性能极好,特别适合Excel写入
Openpyxl支持读取和写入Excel文件支持丰富的格式和多种Excel操作性能相对较慢适合读写场景的统一处理
pyexcelerate用于快速生成Excel文件性能较高,支持批量数据生成功能不如Openpyxl丰富写入大量数据到Excel文件时性能极佳

推荐库:

  • XlsxWriter:性能最优,专门用于写入Excel文件。
  • pyexcelerate:适合生成大量数据的Excel文件。
  • Openpyxl:适合读写兼备的场景。

4. 其他数据治理相关库

除了CSV和Excel的读写外,处理数据的复杂筛选、SQL操作、数据分析等也很重要。以下是推荐的其他数据治理相关库:

库名称主要功能优势缺点推荐理由
DuckDB支持SQL查询,处理结构化数据,直接从CSV、Excel等文件读取数据支持SQL-like查询,处理大规模数据集主要处理结构化数据,无法处理非结构化数据支持在本地设备上进行复杂SQL查询
Polars支持多线程处理,适合复杂筛选和数据操作速度极快,特别适合大数据的过滤与分析API较新,兼容性不如pandas适合多线程场景和复杂过滤
Vaex内存使用高效,适合大规模数据集的治理和分析内存极其高效,但学习曲线稍陡适合处理超大规模的数据集
SQLite轻量级数据库,适合本地处理,支持复杂SQL查询易于使用,适合小型到中型数据集处理大数据集性能一般轻量级本地SQL查询利器

推荐库:

  • DuckDB:适合复杂SQL查询,性能极佳。
  • Polars:适合多线程数据处理,筛选和治理复杂数据。
  • SQLite:轻量级数据库,适合处理中小型数据治理任务。

5. 其他场景库推荐

针对不同的数据处理场景,还可以使用以下库:

数据格式转换

库名称主要功能优势缺点推荐理由
Pandas支持多种格式(CSV、Excel、JSON等)之间的转换功能强大,格式转换灵活大规模数据性能一般多种格式转换的万能库
Pyexcel轻量级库,支持Excel到CSV、JSON等格式的转换易于使用,轻量高效主要用于Excel文件,功能较少小型数据转换场景的最佳选择

推荐库:

  • Pandas:功能丰富,支持各种格式转换。
  • Pyexcel:轻量高效,适合Excel到CSV等格式的转换。

总结

  • 读取速度最高的Excel库:Calamine、Openpyxl、Pyxlsb
  • 读取速度最高的CSV库:Polars、Vaex
  • 写入速度最高的CSV库:Polars、Pandas、csv-writer
  • 写入速度最高的Excel库:XlsxWriter、pyexcelerate、Openpyxl
  • 其他数据治理相关库:DuckDB、Polars、SQLite
正文完
 0
binbin
Copyright notice: Our original article, by binbin 2024-10-23 publish, total 2474 words.
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
Comment(No Comments)