Spaces:
No application file
No application file
| import pandas as pd | |
| class AnalyticsTools: | |
| def __init__(self, data_path="data/sales_data.csv"): | |
| self.df = pd.read_csv(data_path) | |
| def analyze_revenue_trend(self): | |
| recent = self.df.tail(5) | |
| earlier = self.df.head(5) | |
| recent_avg = recent["revenue"].mean() | |
| earlier_avg = earlier["revenue"].mean() | |
| trend = "decreasing" if recent_avg < earlier_avg else "increasing" | |
| return { | |
| "trend": trend, | |
| "recent_avg": recent_avg, | |
| "earlier_avg": earlier_avg | |
| } | |
| def compare_regions(self): | |
| grouped = self.df.groupby("region")["revenue"].sum() | |
| lowest = grouped.idxmin() | |
| highest = grouped.idxmax() | |
| return { | |
| "lowest_region": lowest, | |
| "highest_region": highest | |
| } | |
| def detect_anomalies(self): | |
| mean = self.df["revenue"].mean() | |
| std = self.df["revenue"].std() | |
| anomalies = self.df[ | |
| (self.df["revenue"] < mean - 2 * std) | | |
| (self.df["revenue"] > mean + 2 * std) | |
| ] | |
| return anomalies.to_dict(orient="records") |