Sto facendo un calcolo di apprendimento automatico con due frame di dati, uno per i fattori e l'altro per i valori di destinazione. Devo dividere entrambi in formazione e parti di test. Mi sembra di aver trovato la strada ma sto cercando una soluzione più elegante. Qui è il mio codice:Esempio di due frame di dati panda allo stesso modo
import pandas as pd
import numpy as np
import random
df_source = pd.DataFrame(np.random.randn(5,2),index = range(0,10,2), columns=list('AB'))
df_target = pd.DataFrame(np.random.randn(5,2),index = range(0,10,2), columns=list('CD'))
rows = np.asarray(random.sample(range(0, len(df_source)), 2))
df_source_train = df_source.iloc[rows]
df_source_test = df_source[~df_source.index.isin(df_source_train.index)]
df_target_train = df_target.iloc[rows]
df_target_test = df_target[~df_target.index.isin(df_target_train.index)]
print('rows')
print(rows)
print('source')
print(df_source)
print('source train')
print(df_source_train)
print('source_test')
print(df_source_test)
---- cura - soluzione unutbu (midified) ---
np.random.seed(2013)
percentile = .6
rows = np.random.binomial(1, percentile, size=len(df_source)).astype(bool)
df_source_train = df_source[rows]
df_source_test = df_source[~rows]
df_target_train = df_target[rows]
df_target_test = df_target[~rows]
Grazie! A causa del fatto che devo usare un percentile ho modificato la riga iniziata con rows = ... –
In questo caso, potresti usare 'rows = np.random.binomial (1, percentile * 100, size = len (df_source)) '. – unutbu
sì, funziona, grazie –