diff --git a/README.md b/README.md index 91fc9c0..50333dd 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,15 @@ Products ![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/fairmarket-products02.png "faircoopDataAnalytics") ![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/fairmarket-products03.png "faircoopDataAnalytics") + +#### BotC + +Members + +![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/botc-members01.png "faircoopDataAnalytics") + +![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/botc-members02.png "faircoopDataAnalytics") + +![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/botc-members03.png "faircoopDataAnalytics") + +![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/botc-members04.png "faircoopDataAnalytics") diff --git a/botc-membersAnalytics.py b/botc-membersAnalytics.py new file mode 100644 index 0000000..1e08301 --- /dev/null +++ b/botc-membersAnalytics.py @@ -0,0 +1,77 @@ +# coding=utf-8 +import sys +reload(sys) +sys.setdefaultencoding('utf8') + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from datetime import datetime, date, timedelta + +members = pd.read_csv('datasets/BotC.csv') + +print members.head(1) + +#generate the full set of days from the first date to the last in the dataset +months = [] +days = [] +dInit = date(2017, 6, 8) +dEnd = date(2017, 1, 9) +delta = dEnd - dInit +for i in range(delta.days+1): + day = dInit + timedelta(days=i) + dayString = day.strftime("%d/%m/%y") + dayDatetime = datetime.strptime(dayString, '%d/%m/%y') + days.append(dayDatetime) + +#add the dates of shops creation to the days array +for memberDate in members['Date']: + if isinstance(memberDate, basestring): + memberDay = memberDate + memberDayDatetime = datetime.strptime(memberDay, '%B %d, %Y') + days.append(memberDayDatetime) + +#count days frequency in days array +unique, counts = np.unique(days, return_counts=True) +countDays = dict(zip(unique, counts)) +realCounts = [] +for count in counts: + realCounts.append(count-1) + +#count the total acumulation of shops created in each days +totalCount = 0 +globalCount = [] +for k in realCounts: + totalCount = totalCount + k + globalCount.append(totalCount) + +dates = countDays.values() +counts = countDays.values() + +#plot the data +plt.title("New members registered each day") +plt.plot(unique, realCounts) +plt.show() + +plt.title("Total members each day") +plt.plot(unique, globalCount) +plt.show() + +plt.title("New members and total members each day") +plt.plot(unique, realCounts, label="new members registered each day") +plt.plot(unique, globalCount, label="total members each day") +plt.legend(loc='upper left') +plt.show() + + +# place of the account +places = [] +for place in members["Place"]: + if isinstance(place, basestring): + places.append(place) + +placesNames, placesCount = np.unique(places, return_counts=True) +plt.title("Membership places") +plt.pie(placesCount, labels=placesNames, autopct='%1.1f%%', shadow=True, startangle=90) +plt.axis('equal') +plt.show() diff --git a/chartsResults/botc-members01.png b/chartsResults/botc-members01.png new file mode 100644 index 0000000..f000cb0 Binary files /dev/null and b/chartsResults/botc-members01.png differ diff --git a/chartsResults/botc-members02.png b/chartsResults/botc-members02.png new file mode 100644 index 0000000..b36c59d Binary files /dev/null and b/chartsResults/botc-members02.png differ diff --git a/chartsResults/botc-members03.png b/chartsResults/botc-members03.png new file mode 100644 index 0000000..e12883b Binary files /dev/null and b/chartsResults/botc-members03.png differ diff --git a/chartsResults/botc-members04.png b/chartsResults/botc-members04.png new file mode 100644 index 0000000..d918773 Binary files /dev/null and b/chartsResults/botc-members04.png differ diff --git a/chartsResults/fairmarket-products04.png b/chartsResults/fairmarket-products04.png new file mode 100644 index 0000000..ed0a590 Binary files /dev/null and b/chartsResults/fairmarket-products04.png differ diff --git a/fairmarketAnalysis-productsEvolution.py b/fairmarket-productsAnalytics.py similarity index 74% rename from fairmarketAnalysis-productsEvolution.py rename to fairmarket-productsAnalytics.py index 7ba1977..94b49f9 100644 --- a/fairmarketAnalysis-productsEvolution.py +++ b/fairmarket-productsAnalytics.py @@ -1,11 +1,20 @@ +# coding=utf-8 +import sys +reload(sys) +sys.setdefaultencoding('utf8') + import numpy as np import pandas as pd import matplotlib.pyplot as plt + +import mpld3 +from mpld3 import plugins, utils + from datetime import datetime, date, timedelta products = pd.read_csv('datasets/fairMarket-products.csv') -print products.tail(1) +#print products.tail(1) #generate the full set of days from the first date to the last in the dataset months = [] @@ -57,3 +66,18 @@ plt.plot(unique, realCounts, label="new products offered each day") plt.plot(unique, globalCount, label="total products in FairMarket each day") plt.legend(loc='upper left') plt.show() + + + + +# now, product categories analytics +categories = [] +for category in products["Categoría pública/Display Name"]: + if isinstance(category, basestring): + categories.append(category) + +categoriesNames, categoriesCount = np.unique(categories, return_counts=True) +plt.title("Products categories") +plt.pie(categoriesCount, labels=categoriesNames, autopct='%1.1f%%', shadow=True, startangle=90) +plt.axis('equal') +mpld3.show() diff --git a/fairmarketAnalysis-shopsEvolution.py b/fairmarket-shopsAnalytics.py similarity index 95% rename from fairmarketAnalysis-shopsEvolution.py rename to fairmarket-shopsAnalytics.py index 6110a41..4e841e4 100644 --- a/fairmarketAnalysis-shopsEvolution.py +++ b/fairmarket-shopsAnalytics.py @@ -1,3 +1,8 @@ +# coding=utf-8 +import sys +reload(sys) +sys.setdefaultencoding('utf8') + import numpy as np import pandas as pd import matplotlib.pyplot as plt