faircoopDataAnalytics/fairmarketAnalysis-shopsEvolution.py
fairmarketAnalysis-shopsEvolution.pyRaw
1import numpy as np
2import pandas as pd
3import matplotlib.pyplot as plt
4from datetime import datetime, date, timedelta
5
6shops = pd.read_csv('datasets/fairMarket-shops.csv')
7
8print shops.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 shops creation to the days array
23for shopDate in shops['Created on']:
24 if isinstance(shopDate, basestring):
25 shopDay = str.split(shopDate)[0]
26 shopDayDatetime = datetime.strptime(shopDay, '%d/%m/%y')
27 days.append(shopDayDatetime)
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 shops 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 shops opened each day")
48plt.plot(unique, realCounts)
49plt.show()
50
51plt.title("Total shops each day")
52plt.plot(unique, globalCount)
53plt.show()
54
55plt.title("New shops and total shops each day")
56plt.plot(unique, realCounts, label="new shops opened each day")
57plt.plot(unique, globalCount, label="total shops each day")
58plt.legend(loc='upper left')
59plt.show()