Почему метод расширения Polars создает в кадре данных новые фрагменты вместо одного фрагмента?Python

Программы на Python
Ответить
Anonymous
 Почему метод расширения Polars создает в кадре данных новые фрагменты вместо одного фрагмента?

Сообщение Anonymous »

версия: '1.33.1'
версия Python: 3.11.13
os: ubuntu 22.04.5
Я использую .extend() для добавления новых строк в существующий кадр данных, чей .n_chunks('all') равен 1, после вызова .extend() и новой строки добавлено, проверяется .n_chunks('all'), некоторые столбцы фрейма данных n_chunk становятся 2 вместо 1.
Насколько я понимаю, расширение гарантирует, что новая строка будет скопирована в исходную ячейку памяти фрейма данных как одна в соответствии с документацией Polars. Это ожидаемое поведение?

Код: Выделить всё

DataFrame.extend()
:

Расширить память, поддерживаемую этим DataFrame, за счет значений из других.


В отличие от vstack, который добавляет фрагменты из других к фрагментам этого DataFrame, Extend добавляет данные из других к базовым ячейкам памяти и, таким образом, может вызвать перераспределение.


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


Предпочитайте расширение вместо vstack, если вы хотите выполнить запрос после одного добавления. Например, во время онлайн-операций, когда вы добавляете n строк и повторно запускаете запрос.


Предпочитайте vstack, а не Extend, если вы хотите добавить много раз перед выполнением запроса. Например, когда вы читаете несколько файлов и хотите сохранить их в одном DataFrame. В последнем случае завершите последовательность операций vstack повторной фрагментацией.


Подробнее здесь: https://stackoverflow.com/questions/798 ... instead-of
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»