Я пытаюсь разделить данные на обучение, проверку и тестирование с помощью numpy и pandas.Выбор строк на основе диапазона векторных значений в Pandas
Я знаю, что это работает (это из sklearn
Iris примера):
DataFrame['is_train'] = np.random.uniform(0, 1, len(train)) <= .75
train, test = DataFrame[DataFrame['is_train']==True], DataFrame[DataFrame['is_train']==False]
Но как мне сделать что-то подобное для диапазона значений, например, .33 < < х .66?
Это не работает:
DataFrame['segment'] = np.random.uniform(0, 1, len(df))
DataFrame[DataFrame['segment'] < .33 & DataFrame['segment'] < .66]
Наконец, если вы знаете о лучшем способе, скажите на милость.
Насколько я знаю, sklearn
's cross_validation.train_test_split()
не выполняет трехсторонние расщепления.
Ошибка: DataFrame [DataFrame ['segment']> .33 & DataFrame ['segment'] <.66] Для ответа Edchum's понятен и краток! – ysearka