Hi i’m wondering what should i do to save all those values in a dataframe…
for mask in range (len(predicted_masks)): folha = np.where(predicted_masks [mask,:,:] == 1 , 1, 0) soma_folha = np.sum(folha) sintoma = np.where(predicted_masks [mask,:,:] == 2 , 1, 0) soma_sintoma = np.sum(sintoma) fundo = np.where(predicted_masks [mask,:,:] == 0 , 1, 0) soma_fundo = np.sum(fundo) #print(soma_fundo, soma_folha, soma_sintoma) severidade = (soma_sintoma/(soma_folha+soma_sintoma))*100 severidade = round(severidade,2) print(soma_fundo, soma_folha, soma_sintoma, severidade) d = {'mask': mask, 'soma_folha':soma_folha, 'soma_sintoma':soma_sintoma, 'soma_fundo':soma_fundo, 'severidade': severidade} df = pd.DataFrame([d]) df.to_csv('/content/drive/MyDrive/DB_mosca_minadora/pred_csv/pred_test_db_anotated.csv', index=False)
already tried to save each one separately but it wont came up..
i needed to save all printed values in a dataframe, thats for 304 images (304 lines) buts it only saves the last line
can someone help me?
Advertisement
Answer
You are overwriting and saving your dataframe within the loop. You should instead do something like the following:
df = pd.DataFrame(columns=['mask', 'soma_folha', 'soma_sintoma', 'soma_fundo', 'severidade']) for mask in range (len(predicted_masks)): folha = np.where(predicted_masks [mask,:,:] == 1 , 1, 0) soma_folha = np.sum(folha) sintoma = np.where(predicted_masks [mask,:,:] == 2 , 1, 0) soma_sintoma = np.sum(sintoma) fundo = np.where(predicted_masks [mask,:,:] == 0 , 1, 0) soma_fundo = np.sum(fundo) #print(soma_fundo, soma_folha, soma_sintoma) severidade = (soma_sintoma/(soma_folha+soma_sintoma))*100 severidade = round(severidade,2) print(soma_fundo, soma_folha, soma_sintoma, severidade) d = {'mask': mask, 'soma_folha':soma_folha, 'soma_sintoma':soma_sintoma, 'soma_fundo':soma_fundo, 'severidade': severidade} new_df = pd.DataFrame([d]) df = pd.concat([df, new_df]) df.to_csv('/content/drive/MyDrive/DB_mosca_minadora/pred_csv/pred_test_db_anotated.csv', index=False)