Pandas dataframe - переместить N строк из одного фрейма данных в другой

У меня есть обучающий набор и тестовый набор для машинного обучения, однако обучающий набор содержит слишком много строк данных, а тестовый набор — слишком мало. Я подсчитал, что мне нужно переместить 245 строк из тренировочного набора в тестовый набор, чтобы получить лучшее разделение. Как я могу это сделать? У меня всего 5116 строк в тренировочном наборе.

Сначала я рандомизировал строки тренировочного набора, используя этот

train_df = train_df.sample(n = len(train_df)).reset_index(drop=True)

А потом я захотел взять последние 245 строк и переместить их в test_df

Я нашел эти два решения здесь

Фрейм данных Pandas - перемещайте строки из одного фрейма данных в другой

и

Панды перемещают строки из 1 DF в другой DF

Однако они выбирают строки на основе условия, которого у меня нет. Я как бы хочу сделать это так же, как в python, используя срез массивов, если это возможно.

Может быть, как (строки 0-5116-245 и все столбцы, начиная с 0)

transferdata_df = train_df.iloc[5115 - 245:, 0:]

Затем добавьте это к тестовому набору, например

test_df.append(transferdata_df)

Я не уверен, что это правильный путь или нет.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
507
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Давайте сделаем

transferdata_df = train_df.iloc[- 245:, 0:]

test_df = test_df.append(transferdata_df)

train_df =train_df.drop(transferdata_df.index)

спасибо, все работает, также добавлен test_df = test_df.reset_index(drop=True) в конце, чтобы сбросить индекс в тестовом фрейме данных.

erotavlas 24.12.2020 03:16

@erotavlas yw :-) с праздником

BENY 24.12.2020 03:34

Другие вопросы по теме