Spaces:
Sleeping
Sleeping
File size: 1,822 Bytes
b36e1d2 f187e6b b36e1d2 f187e6b b36e1d2 f187e6b b36e1d2 f187e6b b36e1d2 f187e6b b36e1d2 b956fda b36e1d2 f187e6b b36e1d2 b956fda b36e1d2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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 |