GitPedia

Datatable

A Python package for manipulating 2-dimensional tabular data structures

From h2oai·Updated June 15, 2026·View on GitHub·

This is a Python package for manipulating 2-dimensional tabular data structures (aka data frames). It is close in spirit to [pandas][] or [SFrame][]; however we put specific emphasis on speed and big data support. As the name suggests, the package is closely related to R's [data.table][] and attempts to mimic its core algorithms and API. The project is written primarily in C++, distributed under the Mozilla Public License 2.0 license, first published in 2017. It has gained significant community traction with 1,877 stars and 167 forks on GitHub. Key topics include: data-analysis, data-structure, fedramp, ftrl, performance.

Latest release: v1.1.0Release 1.1.0
December 1, 2023View Changelog →
<!--- Copyright 2018-2020 H2O.ai Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->

datatable

PyPi version
License
Build Status
Documentation Status
Codacy Badge

This is a Python package for manipulating 2-dimensional tabular data structures
(aka data frames). It is close in spirit to pandas or SFrame; however we
put specific emphasis on speed and big data support. As the name suggests, the
package is closely related to R's data.table and attempts to mimic its core
algorithms and API.

Requirements: Python 3.6+ (64 bit) and pip 20.3+.

Project goals

datatable started in 2017 as a toolkit for performing big data (up to 100GB)
operations on a single-node machine, at the maximum speed possible. Such
requirements are dictated by modern machine-learning applications, which need
to process large volumes of data and generate many features in order to
achieve the best model accuracy. The first user of datatable was
Driverless.ai.

The set of features that we want to implement with datatable is at least
the following:

  • Column-oriented data storage.

  • Native-C implementation for all datatypes, including strings. Packages such
    as pandas and numpy already do that for numeric columns, but not for
    strings.

  • Support for date-time and categorical types. Object type is also supported,
    but promotion into object discouraged.

  • All types should support null values, with as little overhead as possible.

  • Data should be stored on disk in the same format as in memory. This will
    allow us to memory-map data on disk and work on out-of-memory datasets
    transparently.

  • Work with memory-mapped datasets to avoid loading into memory more data than
    necessary for each particular operation.

  • Fast data reading from CSV and other formats.

  • Multi-threaded data processing: time-consuming operations should attempt to
    utilize all cores for maximum efficiency.

  • Efficient algorithms for sorting/grouping/joining.

  • Expressive query syntax (similar to data.table).

  • Minimal amount of data copying, copy-on-write semantics for shared data.

  • Use "rowindex" views in filtering/sorting/grouping/joining operators to
    avoid unnecessary data copying.

  • Interoperability with pandas / numpy / pyarrow / pure python: the users
    should have the ability to convert to another data-processing framework
    with ease.

Installation

On macOS, Linux and Windows systems installing datatable is as easy as

sh
pip install datatable

On all other platforms a source distribution will be needed. For more
information see Build instructions.

See also

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from h2oai/datatable via the GitHub API.Last fetched: 6/21/2026