Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| import re | |
| from utils import create_plot, create_barplot | |
| def dataframe_process(sheet): | |
| # Create dataframe | |
| df = pd.DataFrame(sheet.get_all_records()) | |
| df['fecha'] = pd.to_datetime(df['fecha']) | |
| df['week'] = df['fecha'].dt.to_period('W') | |
| #Per day | |
| daily_total=df[['cliente_proveedor','amount','category','fecha']].groupby('fecha').sum().reset_index() | |
| daily_total['month_day'] = daily_total['fecha'].dt.strftime('%m-%d') | |
| fig = create_plot(daily_total['month_day'],daily_total['amount']) | |
| daily_total=daily_total.sort_values(by='fecha', ascending=False) | |
| daily_total=daily_total[['fecha', 'amount']] | |
| todays_amount=daily_total.iloc[0]['amount'] | |
| todays_date=daily_total.iloc[0]['fecha'] | |
| day_month = todays_date.strftime('%m-%d-%Y') | |
| #Per week | |
| # Group by 'week' and sum the values | |
| weekly_df = df[['cliente_proveedor','amount','category','week']].groupby('week').sum().reset_index() | |
| weekly_df=weekly_df.sort_values(by='week', ascending=True) | |
| # weekly_df.index=weekly_df.index.strftime('%m-%d') | |
| current_week_amount="{:.2f}".format(weekly_df.iloc[-1]['amount']) | |
| weekly_df['week'] = weekly_df['week'].astype(str) | |
| weekly_df['week']=weekly_df['week'].apply(lambda x: re.sub(r'\d{4}-', '', x)) | |
| fig2 = create_barplot(weekly_df['week'],weekly_df['amount'],"semana","monto","gasto por semana") | |
| #Per category | |
| expenses_per_category=df[['cliente_proveedor','amount','category']].groupby('category').sum().reset_index() | |
| expenses_per_category=expenses_per_category.sort_values(by='amount', ascending=False) | |
| fig3 = create_barplot(expenses_per_category['category'],expenses_per_category['amount'],"categoria","monto","gasto por categoria") | |
| return day_month, todays_amount, current_week_amount , fig, fig2, fig3 |