У меня проблема с объединением двух фреймов данных. Странная часть в том, что это сработало - но только один раз - в первый раз, и после того, как я сделал некоторые "умные" изменения (о которых я расскажу позже), он не сделал это снова и начал извергать MemoryError. Я также перезагрузил свою машину, и это все та же проблема. Итак, вот что происходит:
- Есть два файла данных -
а) поезд.паркет
б) metadata.csv
- metadata.csv содержит информацию о типе данных train.parquet is.
- В файле
metadata.csv
есть 4 столбца, из которых меня интересуют три.
- В связи с типом проблемы, над которой я работаю, меня просят транспонировать train.parquet. При этом количество строк в train.parquet будет соответствовать metadata.csv . Там нет проблем.
- Итак, для начала я делаю
metadata = pd.read_csv("metadata.csv")
- Тогда я делаю
train = pd.read_parquet("train.parquet", engine = 'pyarrow').T
(.T для транспонирования)
- Затем, когда я пытаюсь
df = pd.concat([train, metadata.col1, metadata.col2, metadata.col3], axis = 'columns')
, я получаю MemoryError
ошибку.
Вот «умное» изменение, о котором я говорил ранее:
- Я изначально НЕ делал
.T
непосредственно на тренировочных данных (train = pd.read_parquet("train.parquet", engine = 'pyarrow').T
)
- Я сделал
original_data = pd.read_parquet("train.parquet", engine = 'pyarrow')
- Тогда
train = original_data.T
- По сути, делает то же самое, по крайней мере, для меня.
- После этого, когда я сделал
df = pd.concat([train, metadata.col1, metadata.col2, metadata.col3], axis = 'columns')
, это сработало -> Это единственный раз, когда это сработало.
- Но потом я понял, что на самом деле мне нужно
metadata.col1
в конце (поскольку это целевая переменная), поэтому я подумал, что перезапущу его, изменив порядок столбцов метаданных - что-то вроде этого: df = pd.concat([train, metadata.col2, metadata.col3, metadata.col1], axis = 'columns')
.
- Казалось, справедливо.
- Но прежде чем я смог запустить это, я попытался сделать то, о чем позже пожалею - перенести кадр данных напрямую (
train = pd.read_parquet("train.parquet", engine = 'pyarrow').T
)
- После этого, каждый раз, когда я пытаюсь объединить два кадра данных, я получаю ошибку памяти. Я также перезагрузил свой компьютер.
Что может быть причиной этого?
Любая помощь очень ценится.
Заранее спасибо.
РЕДАКТИРОВАТЬ - Это виртуальная машина Azure 64 ГБ.