Metadata-Version: 2.1
Name: pypdtools
Version: 0.0.1
Summary: Package with tools for pandas
Author-email: Marciel Barcellos <marciel.barcellos@tcmrio.tc.br>
Project-URL: source, https://github.com/msbar/pypdtools
Project-URL: Documentation, https://msbar.github.io/pypdtools/
Project-URL: Bug Tracker, https://github.com/msbar/pypdtools/issues
Keywords: pandas,tools,asyncio
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Provides-Extra: tests
Provides-Extra: docs
License-File: LICENSE

# Pypdtools

Pypdtools is a Python package that extends the functionality of Pandas DataFrames by introducing the `PtDataFrame` class. `PtDataFrame` provides additional features and enhancements to work with DataFrames in a more convenient and flexible way.

## Features

- Asynchronous iteration support: `PtDataFrame` implements both synchronous and asynchronous iterators, allowing for efficient and convenient data processing in asynchronous contexts.
- Context manager support: `PtDataFrame` can be used as a context manager to easily access the encapsulated Pandas DataFrame.
- Concatenation and reduction: `PtDataFrame` supports concatenation of multiple instances and reduction of a list of `PtDataFrame` objects into a single instance.
- Column extraction: Easily extract a column as a list from a `PtDataFrame`.

**Docs:** <a href="https://msbar.github.io/pypdtools" target="_blank">https://msbar.github.io/pypdtools</a>

**Source code:** <a href="https://github.com/msbar/pypdtools" target="_blank">https://github.com/msbar/pypdtools</a>

## Installation

You can install pypdtools using pip:
```
pip install pypdtools
```

## Usage

Here's an example of how to use the `PtDataFrame` class:

```python
import pandas as pd
from pypdtools.core.dataframe import PtDataFrame

# Create a Pandas DataFrame
data = {
    "a": [1, 2, 3],
    "b": [4, 5, 6],
    "c": [7, 8, 9]
}
df = pd.DataFrame(data)

# Create a PtDataFrame from the Pandas DataFrame
pt_df = PtDataFrame(df)

# Async Iterate over rows
async for row in pt_df:
    print(row)

# Concatenate PtDataFrames
pt_df2 = PtDataFrame(df)
concatenated = pt_df + pt_df2

# Reduce a list of PtDataFrames
pt_df3 = PtDataFrame.reduce([pt_df, pt_df2])

# Extract a column as a list
col_values = pt_df.col_to_list("a")
print(col_values)
```
