WoollyM
Dataframes library for data analysis. Providing an interface for easy data access, manipulation, and calculation. Data are stored in memory (native driver) or external storage (sql drivers or others), enabling the library to be used seamlessly as a connector. Exports and imports with popular formats (CSV, Spreadsheet, Json...) are also supported.
Install / Use
/learn @MammothPHP/WoollyMREADME
Documentation: WoollyM.dev
Main Author: Julien Boudry
License: BSD-3 - Please say hello if you like or use this code!
Donation: ₿ bc1qf6046u5ar3pfnazvtdl7la52zq7ueywxu8sy2s or Github Sponsor Page
You can also offer me a bottle of yellow wine from JURA
[!WARNING] This project is currently at an experimental stage. Production use is not recommended. APIs and functionalities are subject to change at any time without notice. Documentation is still deficient. Help and feedback are most welcome.
[!TIP] The Official Documentation contains a complete presentation of the project, its features and the full API reference.
<picture><img alt="WoollyM favicon" height="16px" style="vertical-align:middle" src="logos/woollym-favicon-color.png"></picture> WoollyM.dev <img alt="WoollyM favicon" height="16px" style="vertical-align:middle" src="logos/woollym-favicon-color.png"></picture>
WoollyM is a PHP library for data analysis. It can be used to represent tabular data from various sources (CSV, database, JSON, Excel...). The unified API can then be used easily to browse, analyze, modify, and export data in a variety of formats, we try to provide a very playful, modern, expressive, and user-friendly interface. This API is also modular and extensible, so you can easily add your own calculation and exploration methods.
Performances are optimized to be as light as possible on RAM during operations (input, output, read, write, stats, copy, clone), this is done using - internally - complex iterators and optimization preferring RAM over speed (even if we try to be fast also). The storage engine uses a modular storage system, if the default PhpArray driver uses RAM, the use of a database driver (such as the PDO driver) theoretically allows you to work on extremely large datasets. Using appropriate drivers, you can also write - for example - directly to the database (add, update) using the Woolly API.
[!NOTE] Woolly was a fork from archon/dataframe project which was very useful and inspiring during development. Today, the internal engine has been almost completely rewritten and the public APIs are radically different and incompatible. A few traces of code and ideas remain, they have been placed by their original author under the BSD-3 license.
