Eliminando linhas ausentes em dois dataframes

Sep 18 2020

Eu tenho dois arquivos: Test_data - contém os recursos de um conjunto de dados para encontrar previsões para Submission_data - contém duas colunas: a coluna de índice para dados de teste e outra coluna para seu valor previsto correspondente

Portanto, tenho que fazer previsões sobre os dados de teste e armazenar os valores previstos no arquivo de envio.

Durante o pré-processamento dos dados de teste, estou eliminando linhas que não contêm valores (NaN) para pelo menos 50% dos recursos (colunas):

test_data = test_data.dropna(thresh=math.ceil(test_data.shape[1]/2))

Agora, como faço para remover as linhas correspondentes no dataframe de envios? Porque, se eu eliminar algumas linhas nos dados de teste, não posso fazer uma previsão para a linha correspondente no dataframe / arquivo de submissões.

O problema é que há uma coluna de índice que NÃO TEM valores EXCLUSIVOS (tanto nos dados de teste quanto nos dados de envio)

Então, como faço para eliminar as linhas nos dados de envios que também foram descartadas nos dados de teste?

Eu sou novo em desafios de ML e acho isso desafiador.

Respostas

1 DeepikaKalra Sep 18 2020 at 14:37

Quando você lê os dois arquivos csv e armazena os dados em dois dataframes, pode então combiná-los em um dataframe, fazer o dropna e depois dividi-los de volta. Vou dar um exemplo usando pandas

importar pandas como pd df1 = pd.read_csv ('test_data.csv') df2 = pd.read_csv ('submit_data.csv') df3 = pd.concat ([df1, df2], axis = 1) # isso combinará os dois dfs.

reduzida_data = df3.dropna (thresh = math.ceil (test_data.shape [1] / 2)) predictions = reduced_data.loc [:, ['predictions']] reduced_data.drop (colunas = ['predictions'], inplace = Verdadeiro)

#em vez de 'previsões', use qualquer nome de coluna que você tiver para as previsões no arquivo submit_data.csv.

Espero que isto ajude.