PerformanceWarning: DataFrame сильно фрагментирован. Обычно это является результатом многократного вызова Frame.insert, что приводит к низкой производительности. Рассмотрите возможность объединения всех столбцов одновременно, используя вместо этого pd.concat(axis=1). Чтобы получить дефрагментированный кадр, используйте newframe =frame.copy()
Я работаю с кадром данных с большим количеством столбцов (это исходные данные, эти столбцы я не добавлял), и это первый столбец, который я добавляю.
Код: Выделить всё
df["mapped_column"] = df["column_to_map"].map(map_dict)
Я прочитал этот вопрос и попробовал предложения, но ничего не помогло (за исключением, конечно, игнорирования предупреждения) .
У меня два вопроса: что такое фрагментированный DataFrame?
Что я делаю неправильно?
Изменить (подробнее)
Источником моего df является файл csv на моем компьютере, который я загружаю с помощью pd.read_csv(). Он имеет 203 столбца и 12 строк (он довольно маленький). При чтении файла все столбцы читаются как строки, за исключением трех, которые являются числами с плавающей запятой. Прежде чем выполнить операцию, которая вызывает предупреждение в моем df, я выполняю две операции:
- Изменяю тип «column_to_map» с объекта на категорию.
- Измените другой столбец с object на datetime64 с помощью pd.to_datetime().
Я не могу сделать код более воспроизводимо, поскольку я не могу вставить сюда исходные данные.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -column-to