Невозможно объединить кадры данных - MemoryError - PullRequest
0 голосов
/ 13 марта 2019

У меня проблема с объединением двух фреймов данных. Странная часть в том, что это сработало - но только один раз - в первый раз, и после того, как я сделал некоторые "умные" изменения (о которых я расскажу позже), он не сделал это снова и начал извергать MemoryError. Я также перезагрузил свою машину, и это все та же проблема. Итак, вот что происходит:

  1. Есть два файла данных - а) поезд.паркет б) metadata.csv
  2. metadata.csv содержит информацию о типе данных train.parquet is.
  3. В файле metadata.csv есть 4 столбца, из которых меня интересуют три.
  4. В связи с типом проблемы, над которой я работаю, меня просят транспонировать train.parquet. При этом количество строк в train.parquet будет соответствовать metadata.csv . Там нет проблем.
  5. Итак, для начала я делаю metadata = pd.read_csv("metadata.csv")
  6. Тогда я делаю train = pd.read_parquet("train.parquet", engine = 'pyarrow').T (.T для транспонирования)
  7. Затем, когда я пытаюсь df = pd.concat([train, metadata.col1, metadata.col2, metadata.col3], axis = 'columns'), я получаю MemoryError ошибку.

Вот «умное» изменение, о котором я говорил ранее:

  1. Я изначально НЕ делал .T непосредственно на тренировочных данных (train = pd.read_parquet("train.parquet", engine = 'pyarrow').T)
  2. Я сделал original_data = pd.read_parquet("train.parquet", engine = 'pyarrow')
  3. Тогда train = original_data.T - По сути, делает то же самое, по крайней мере, для меня.
  4. После этого, когда я сделал df = pd.concat([train, metadata.col1, metadata.col2, metadata.col3], axis = 'columns'), это сработало -> Это единственный раз, когда это сработало.
  5. Но потом я понял, что на самом деле мне нужно metadata.col1 в конце (поскольку это целевая переменная), поэтому я подумал, что перезапущу его, изменив порядок столбцов метаданных - что-то вроде этого: df = pd.concat([train, metadata.col2, metadata.col3, metadata.col1], axis = 'columns').
  6. Казалось, справедливо.
  7. Но прежде чем я смог запустить это, я попытался сделать то, о чем позже пожалею - перенести кадр данных напрямую (train = pd.read_parquet("train.parquet", engine = 'pyarrow').T)
  8. После этого, каждый раз, когда я пытаюсь объединить два кадра данных, я получаю ошибку памяти. Я также перезагрузил свой компьютер.

Что может быть причиной этого?

Любая помощь очень ценится.

Заранее спасибо.

РЕДАКТИРОВАТЬ - Это виртуальная машина Azure 64 ГБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...