diff --git a/src/class/__init__.py b/src/analysis/__init__.py similarity index 100% rename from src/class/__init__.py rename to src/analysis/__init__.py diff --git a/src/analysis/__main__.py b/src/analysis/__main__.py new file mode 100644 index 0000000..8b070ee --- /dev/null +++ b/src/analysis/__main__.py @@ -0,0 +1,13 @@ +from analysis.io import load_sales +from analysis.metrics import revenue_per_day +from analysis.plotting import plot_daily_revenue + + +def main() -> None: + df = load_sales("resources/sales.csv") + daily = revenue_per_day(df) + plot_daily_revenue(daily) + + +if __name__ == "__main__": + main() diff --git a/src/analysis/io.py b/src/analysis/io.py new file mode 100644 index 0000000..320fddb --- /dev/null +++ b/src/analysis/io.py @@ -0,0 +1,5 @@ +import pandas as pd + + +def load_sales(path: str) -> pd.DataFrame: + return pd.read_csv(path, sep=",", encoding="utf-8") diff --git a/src/analysis/metrics.py b/src/analysis/metrics.py new file mode 100644 index 0000000..d8a262a --- /dev/null +++ b/src/analysis/metrics.py @@ -0,0 +1,6 @@ +import pandas as pd + + +def revenue_per_day(df: pd.DataFrame) -> pd.Series: + revenue = df["quantity"] * df["unit_price"] + return revenue.groupby(df["day"]).sum() diff --git a/src/analysis/plotting.py b/src/analysis/plotting.py new file mode 100644 index 0000000..985b2f7 --- /dev/null +++ b/src/analysis/plotting.py @@ -0,0 +1,9 @@ +import matplotlib.pyplot as plt +import pandas as pd + + +def plot_daily_revenue(daily: pd.Series) -> None: + daily.plot(kind="bar") + plt.title("Daily Revenue") + plt.tight_layout() + plt.show() diff --git a/src/exercises/__init__.py b/src/exercises/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/class/classes.py b/src/exercises/classes.py similarity index 100% rename from src/class/classes.py rename to src/exercises/classes.py diff --git a/src/class/dog.py b/src/exercises/dog.py similarity index 100% rename from src/class/dog.py rename to src/exercises/dog.py diff --git a/src/class/inheritance.py b/src/exercises/inheritance.py similarity index 100% rename from src/class/inheritance.py rename to src/exercises/inheritance.py diff --git a/src/class/moduleA.py b/src/exercises/moduleA.py similarity index 100% rename from src/class/moduleA.py rename to src/exercises/moduleA.py diff --git a/src/resources/sales.csv b/src/resources/sales.csv new file mode 100644 index 0000000..5775461 --- /dev/null +++ b/src/resources/sales.csv @@ -0,0 +1,11 @@ +day,product,quantity,unit_price,region +Mon,Notebook,3,899.0,West +Mon,Mouse,12,25.0,West +Tue,Notebook,2,899.0,Ost +Tue,Keyboard,5,70.0,Ost +Wed,Monitor,4,220.0,West +Wed,Mouse,10,25.0,Nord +Thu,Keyboard,6,70.0,Sued +Thu,Monitor,3,220.0,Ost +Fri,Notebook,1,899.0,Nord +Fri,Mouse,15,25.0,Sued