This commit is contained in:
arnaucode
2017-09-03 10:41:30 +02:00
parent aa36371094
commit 6cb70034bf
9 changed files with 119 additions and 1 deletions

View File

@@ -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-products02.png "faircoopDataAnalytics")
![faircoopDataAnalytics](https://raw.githubusercontent.com/arnaucode/faircoopDataAnalytics/master/chartsResults/fairmarket-products03.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")

77
botc-membersAnalytics.py Normal file
View File

@@ -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()

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -1,11 +1,20 @@
# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import mpld3
from mpld3 import plugins, utils
from datetime import datetime, date, timedelta from datetime import datetime, date, timedelta
products = pd.read_csv('datasets/fairMarket-products.csv') 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 #generate the full set of days from the first date to the last in the dataset
months = [] 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.plot(unique, globalCount, label="total products in FairMarket each day")
plt.legend(loc='upper left') plt.legend(loc='upper left')
plt.show() 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()

View File

@@ -1,3 +1,8 @@
# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import matplotlib.pyplot as plt import matplotlib.pyplot as plt