import numpy as np
from IPython.display import HTML
#import pandas
pd.set_option('display.max_colwidth', -1)
all_tracks = pd.merge(datasets["historical"],datasets["today"], on=['TRACKID','TRACKNAME','ARTISTNAME',"PERCENT_RANK"])
#print all_tracks
all_tracks['zscore'] = (all_tracks['TODAY']-all_tracks['AVG'])/all_tracks['STD']
#print all_tracks
all_tracks['pct_above_avg'] = (all_tracks['TODAY'] - all_tracks['AVG'])/all_tracks['AVG']*100
#print all_tracks
all_tracks = all_tracks.sort_values('zscore',ascending=False)
#print all_tracks
all_tracks = all_tracks.drop(all_tracks[all_tracks.zscore<4.5].index)
all_tracks = all_tracks.dropna()
all_tracks.reset_index(drop = True, inplace = True)
all_tracks.rename(index=str, columns={'TRACKNAME': 'Track', "ARTISTNAME": "Artist", "pct_above_avg": "Percent above expected", "AVG": "Daily Average", "ISRCID": "Analytics", "TODAY": "Streams Today"},inplace=True)
# all_tracks['Analytics'] = "https://workstation.theorchard.com/analytics/overview?group_by=channel&to_date=2018-06-05&from_date=2018-05-31&store_ids=286&isrc_ids=" + all_tracks["Analytics"].map(str)
all_tracks['Analytics'] = all_tracks['Analytics'].apply(lambda x: 'Link'.format(x))
# all_tracks['Analytics'] = all_tracks['Analytics'].apply(lambda x: "link".format(x))
all_tracks = all_tracks[['Track', 'Artist', 'Daily Average', 'Streams Today','Percent above expected','Analytics']]
all_tracks = all_tracks.sort_values(by=['Percent above expected'], ascending = False)
HTML(all_tracks.to_html(escape=False))
datasets["placements"].rename(index=str, columns={'TRACK': 'Track', "ARTIST": "Artist", "Link": "Playlist Link"},inplace=True)
placements = all_tracks.merge(datasets["placements"],on=['Track','Artist'])
placements['Playlist Link'] = placements['Playlist Link'].apply(lambda x: 'Spotify'.format(x))
placements = placements[['Track', 'Artist', 'NAME', 'Playlist Link','DATE ADDED']]
#placements[:100]
HTML(placements.to_html(escape=False))
import matplotlib.pyplot as plt
import seaborn as sns
datasets["lw"].rename(index=str, columns={'TRACKNAME': 'Track', "ARTISTNAME": "Artist"},inplace=True)
lw = all_tracks.merge(datasets["lw"],on=['Track','Artist'])
lw = lw[['Track', 'Artist', 'DAY','SUMS','TRACKID']]
lw['DAY'] = pd.to_datetime(lw['DAY'])
for label, df in lw.sort_values(['DAY']).groupby('TRACKID'):
print df['Track'].iloc[0] , df['TRACKID'].iloc[0]
df.plot(x='DAY', y='SUMS',use_index=True)
plt.show()
# for label, df in lw.sort_values(['DAY']).groupby('TRACKID'):
# print df
# sns.tsplot(df,time='DAY',value='SUMS')
# #plt.show()