Sto cercando di leggere un file CSV abbastanza grande con Panda e suddividerlo in due blocchi casuali, uno dei quali è il 10% dei dati e l'altro è il 90%.Panda: campionamento di un DataFrame
Ecco il mio tentativo attuale:
rows = data.index
row_count = len(rows)
random.shuffle(list(rows))
data.reindex(rows)
training_data = data[row_count // 10:]
testing_data = data[:row_count // 10]
Per qualche ragione, sklearn
getta questo errore quando provo ad usare uno di questi oggetti dataframe risultanti all'interno di un classificatore SVM:
IndexError: each subindex must be either a slice, an integer, Ellipsis, or newaxis
penso Sto sbagliando. C'è un modo migliore per farlo?
Per inciso, questo non sarebbe casuale mescolare in modo corretto in ogni caso - il problema è 'random.shuffle (elenco (righe))' . 'shuffle' altera i dati su cui opera, ma quando chiamate' list (rows) ', fate una copia di' rows' che viene alterata e poi gettata via - la serie di panda sottostante, 'rows', è invariata. Una soluzione è chiamare 'rows = list (rows)', quindi 'random.shuffle (rows)' e 'data.reindex (rows)' dopo. –