Найдено ноль при развертывании не ноль значение

Если вам нужно разделить свои данные по столбцу lables в вашем наборе данных, вы можете использовать это:

def split_to_train_test(df, label_column, train_frac=0.8):
    train_df, test_df = pd.DataFrame(), pd.DataFrame()
    labels = df[label_column].unique()
    for lbl in labels:
        lbl_df = df[df[label_column] == lbl]
        lbl_train_df = lbl_df.sample(frac=train_frac)
        lbl_test_df = lbl_df.drop(lbl_train_df.index)
        print '\n%s:\n---------\ntotal:%d\ntrain_df:%d\ntest_df:%d' % (lbl, len(lbl_df), len(lbl_train_df), len(lbl_test_df))
        train_df = train_df.append(lbl_train_df)
        test_df = test_df.append(lbl_test_df)

    return train_df, test_df

и использовать его:

train, test = split_to_train_test(data, 'class', 0.7)

вы также может передавать random_state, если вы хотите контролировать случайную разбивку или использовать какое-либо глобальное случайное семя.

0
задан giuse 26 February 2015 в 09:34
поделиться