İki veri çerçevesine sahip makine öğrenmesi hesaplamaları yapıyorum - bunlardan biri faktörler ve hedef değerler için diğeridir. Hem eğitime hem de parçaları test etmeye ayırmam gerek. Bana yolu bulduğumu düşünüyorum ama daha zarif bir çözüm arıyorum. İşte benim kodudur:İki pandalık veri karesini aynı şekilde örnekleme
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)
---- düzenlenebilir - Eğer rows
uzunluğunda len(df)
bir boolean dizisi yaparsanız unutbu tarafından çözeltisi (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]
teşekkürler! Bazı yüzdelik kullanmam gerektiğinden, satır değiştirilmiş çizgiyi değiştirdim = ... –
Bu durumda, = satırları kullanabilirsiniz np.random.binomial (1, yüzdelik * 100, size = len (df_source)) '. – unutbu
evet, çalışıyor, thanx –