faircoopDataAnalytics/fairmarketAnalysis-productsEvolution.py
fairmarketAnalysis-productsEvolution.pyRaw
1import numpy as np
2import pandas as pd
3import matplotlib.pyplot as plt
4from datetime import datetime, date, timedelta
5
6products = pd.read_csv('datasets/fairMarket-products.csv')
7
8print products.tail(1)
9
10#generate the full set of days from the first date to the last in the dataset
11months = []
12days = []
13dInit = date(2015, 5, 04)
14dEnd = date(2017, 8, 31)
15delta = dEnd - dInit
16for i in range(delta.days+1):
17 day = dInit + timedelta(days=i)
18 dayString = day.strftime("%d/%m/%y")
19 dayDatetime = datetime.strptime(dayString, '%d/%m/%y')
20 days.append(dayDatetime)
21
22#add the dates of products creation to the days array
23for productDate in products['Creado en']:
24 if isinstance(productDate, basestring):
25 productDay = str.split(productDate)[0]
26 productDayDatetime = datetime.strptime(productDay, '%d/%m/%y')
27 days.append(productDayDatetime)
28
29#count days frequency in days array
30unique, counts = np.unique(days, return_counts=True)
31countDays = dict(zip(unique, counts))
32realCounts = []
33for count in counts:
34 realCounts.append(count-1)
35
36#count the total acumulation of products created in each days
37totalCount = 0
38globalCount = []
39for k in realCounts:
40 totalCount = totalCount + k
41 globalCount.append(totalCount)
42
43dates = countDays.values()
44counts = countDays.values()
45
46#plot the data
47plt.title("New products published each day")
48plt.plot(unique, realCounts)
49plt.show()
50
51plt.title("Total products in FairMarket each day")
52plt.plot(unique, globalCount)
53plt.show()
54
55plt.title("New products and total products each day")
56plt.plot(unique, realCounts, label="new products offered each day")
57plt.plot(unique, globalCount, label="total products in FairMarket each day")
58plt.legend(loc='upper left')
59plt.show()