"""Example module that performs operations on a Dataframe"""
from dataclasses import dataclass
from typing import Callable
import pandas as pd
from pandas import Series
@dataclass
[docs]
class Query:
"""Parameters to query float columns of the Dataframe."""
[docs]
def __post_init__(self):
if self.column_name == "":
raise ValueError("Column name is invalid")
if self.min > self.max:
raise ValueError("Range is invalid")
[docs]
def query_by_column(df: pd.DataFrame, query: Query):
"""Queries float columns of a Dataframe."""
return df.loc[
(df[query.column_name] >= query.min) & (df[query.column_name] <= query.max)
]