paraderos_sinlatlong = frame_2['par_subida'][frame_2['lat_subida'].isnull()& frame_2['par_subida'].notnull()].unique()

paraderos_sinlatlong

frame_2 = frame_2[frame_2.lat_subida.notnull()]

from scipy.stats.mstats import mode
f = lambda x: mode(x, axis=None)[0][0]
g = lambda x: mode(x,axis=None)[1][0]
aggregations = {
    'tiempo_subida': "count"  # Calculate two results for the 'network' column with a list
    
}
a_group = frame.groupby(['par_subida','tipo_transporte']).agg(aggregations)
another_group = frame.groupby(['par_subida','par_bajada','lat_subida','tipo_transporte']).agg(aggregations)

sorted_group = another_group.sort_values('tiempo_subida',ascending=False)
sorted_group.head(100)

sorted_group.to_csv('od.csv')

another_group.head()

groupie_group = frame.groupby(['par_subida','tipo_transporte']).agg({'tiempo_subida':"count"})
sorted_par_subidas = groupie_group.sort_values('tiempo_subida',ascending=False)
sorted_par_subidas.to_csv('origin_.csv')
sorted_par_subidas.head()

groupie_group = frame.groupby(['par_bajada']).agg({'tiempo_subida':"count"})
sorted_par_bajadas = groupie_group.sort_values('tiempo_subida',ascending=False)
sorted_par_bajadas.to_csv('destination_.csv')
sorted_par_bajadas.head()

sorted_par_subidas[sorted_par_subidas['tiempo_subida']>10].to_csv('origin_10.csv')
sorted_par_bajadas[sorted_par_bajadas['tiempo_subida']>10].to_csv('destination_10.csv')

with open('correct_and_wrong_indexs_alg1.pickle') as f:
    correct_alg1 =  pickle.load(f)
    wrong_alg1 = pickle.load(f)

with open('index_id_users.pickle') as f:
    users_id = pickle.load(f)
    

correct_alg1_ids = []
wrong_alg1_ids = []
for i in range(len(correct_alg1)):
    correct_alg1_ids.append(users_id[i])
for i in range(len(wrong_alg1)):
    wrong_alg1_ids.append(users_id[i])

def write_csv_grouped_data(a_frame,name,threshold):
    groupie_group = a_frame.groupby(['par_bajada','tipo_transporte']).agg({'tiempo_subida':"count"})
    sorted_par_bajadas = groupie_group.sort_values('tiempo_subida',ascending=False)
    sorted_par_bajadas[sorted_par_bajadas['tiempo_subida']>threshold].to_csv(name+'_'+str(threshold)+'_destination.csv')
    groupie_group = a_frame.groupby(['par_subida','tipo_transporte']).agg({'tiempo_subida':"count"})
    sorted_par_subidas = groupie_group.sort_values('tiempo_subida',ascending=False)
    sorted_par_subidas[sorted_par_subidas['tiempo_subida']>threshold].to_csv(name+'_'+str(threshold)+'_origin.csv')
    return sorted_par_subidas

"""
Explanation: Paraderos sin latitud ni longitud
End of explanation
"""


ff = write_csv_grouped_data(frame,'',0)

write_csv_grouped_data(frame_2,'',0)

frame

write_csv_grouped_data(frame[frame['id'].isin(wrong_alg1_ids)],'wrong_alg1',1)

write_csv_grouped_data(frame[frame['id'].isin(correct_alg1_ids)],'correct_alg1',1)

"""
Explanation: Guardar en csv viajes de los correctos e incorrectos
End of explanation
"""


without_transbordors_frame = frame[frame['netapa']==1]

write_csv_grouped_data(without_transbordors_frame[without_transbordors_frame['id'].isin(wrong_alg1_ids)],'wrong_alg1_wo_tr',1)
write_csv_grouped_data(without_transbordors_frame[without_transbordors_frame['id'].isin(correct_alg1_ids)],'correct_alg1_wo_tr',1)

"""
Explanation: Guardar en csv viajes de los correctos e incorrectos. sin transbordo
End of explanation
"""


