pd.dataframe 只保存一行

pd.dataframe saving only one line

嗨,我想知道我应该怎么做才能将所有这些值保存在数据框中...

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)

已经尝试过分别保存每一个但是它不会出现..

我需要将所有打印值保存在数据框中,即 304 张图像(304 行)但它只保存最后一行

有人可以帮助我吗?

您正在循环中覆盖并保存您的数据框。您应该改为执行以下操作:

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)