SHARE
TWEET

Untitled

a guest Dec 15th, 2019 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4.  
  5. df = pd.read_csv('fin.csv')
  6. fig, ax = plt.subplots(figsize = (10,5))
  7. def datetime(column):
  8.     return np.array([list(map(int, string.split(' ')[0].split('-'))) for string in column])
  9.  
  10. df['year'] = datetime(df['ВРЕМЯ'].to_numpy())[:, 0]
  11. df['month'] = datetime(df['ВРЕМЯ'].to_numpy())[:, 1]
  12. df['day'] = datetime(df['ВРЕМЯ'].to_numpy())[:, 2]
  13.  
  14. for year in np.unique(df['year']):
  15.     print('average monthly income in ', year, ' : ', (df.loc[(df['year'] == year) & (df['КАТЕГОРИЯ'] == 'Доходы')].sum()['СУММА'])/len(np.unique(df.loc[(df['year'] == year), ['month']])))
  16.  
  17. for year in np.unique(df['year']):
  18.     for category in np.unique(df.loc[(df['year'] == year)&(df['КАТЕГОРИЯ'] != 'Доходы'), ['КАТЕГОРИЯ']]):
  19.         print('Monthly average expenses on ', category, ' in year ', year, ' : ', df.loc[(df['year'] == year) & (df['КАТЕГОРИЯ'] == category), ['СУММА']].sum()['СУММА']/len(np.unique(df.loc[(df['year'] == year), ['month']])))
  20.     print()
  21.  
  22. fd = df.loc[df['КАТЕГОРИЯ'] != 'Доходы'].pivot_table('СУММА', ['year', 'КАТЕГОРИЯ'], 'month', aggfunc = {'СУММА': sum})
  23. fd.plot.bar()
  24.  
  25. print(fd)
  26. xs = []
  27. ys = []
  28. for year in np.unique(df['year']):
  29.     for month in np.unique(df.loc[df['year'] == year, 'month']):
  30.         for day in np.unique(df.loc[(df['year'] == year)&(df['month'] == month), 'day']):
  31.             xs.append(str(year)+'-'+str(month)+'-'+str(day))
  32.             ys.append(df.loc[(df['year'] == year)&(df['month'] == month)&(df['day'] == day), 'СУММА'].sum())
  33.  
  34.  
  35. ax.plot(xs, ys)
  36. ax.tick_params(
  37.     axis='x',          # changes apply to the x-axis
  38.     which='both',      # both major and minor ticks are affected
  39.     bottom=False,      # ticks along the bottom edge are off
  40.     top=False,         # ticks along the top edge are off
  41.     labelbottom=False) # labels along the bottom edge are off
  42. plt.show()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top