Lazyframe Polars не возвращает указанный порядок схемы после сбораPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Lazyframe Polars не возвращает указанный порядок схемы после сбора

Сообщение Anonymous »

У меня есть функция, которая запускается в цикле и выполняет вычисления над списком массивов.
В какой-то момент во время первой итерации функции инициализируется ленивый кадр Polars. p>
На следующих итерациях новый фрейм данных указывается с использованием той же схемы, и два фрейма данных соединяются построчно с помощью pl.vstack, а затем снова указываются как ленивый фрейм.

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

import numpy as np
import polars as pl

def my_func():

array_list = [np.zeros((1,19))]*2 #this is just for example and not representative of shape of real array.

for i, _ in enumerate(array_list):

#calculations are done here

result = np.zeros((1,19)) #result of calculations (correct shape of real result)

if i < 1:
result_df = pl.DataFrame(data = result,
schema = {
'MDL',
'MVL',
'MWVL',
'RR',
'DET',
'ADL',
'LDL',
'DIV',
'EDL',
'LAM',
'TT',
'LVL',
'EVL',
'AWVL',
'LWVL',
'LWVLI',
'EWVL',
'Ratio_DRR',
'Ratio_LD'},
orient='row').lazy()

else:

new_df = pl.DataFrame(data=data,
schema = {
'MDL',
'MVL',
'MWVL',
'RR',
'DET',
'ADL',
'LDL',
'DIV',
'EDL',
'LAM',
'TT',
'LVL',
'EVL',
'AWVL',
'LWVL',
'LWVLI',
'EWVL',
'Ratio_DRR',
'Ratio_LD'
},
orient='row')

#append new dataframe to results
result_df = result_df.collect().vstack(new_df, in_place=True).lazy()

return result_df

При возврате кадра данных вне функции имена столбцов больше не в порядке, но данные в порядке.
например,

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

result.schema

OrderedDict([('LAM', Float64),
('LDL', Float64),
('ADL', Float64),
('DIV', Float64),
('MDL', Float64),
('MWVL', Float64),
('LWVL', Float64),
('MVL', Float64),
('TT', Float64),
('DET', Float64),
('RR', Float64),
('EDL', Float64),
('Ratio_LD', Float64),
('Ratio_DRR', Float64),
('LVL', Float64),
('LWVLI', Float64),
('EWVL', Float64),
('EVL', Float64),
('AWVL', Float64)])
Я предполагаю, что это связано с моей наивностью в отношении того, как работают ленивые фреймы, но есть ли способ обеспечить порядок без переименования столбцов?
Спасибо .

Подробнее здесь: https://stackoverflow.com/questions/783 ... collecting
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python Polars: Как добавить столбцы в одну LazyFrame в другой LazyFrame?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между Polars.collect_all и Polars.LazyFrame.collect
    Anonymous » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Python Polars: как получить количество строк LazyFrame?
    Anonymous » » в форуме Python
    0 Ответы
    87 Просмотры
    Последнее сообщение Anonymous
  • Как обрабатывать Python Polars LazyFrame в пакетном режиме
    Anonymous » » в форуме Python
    0 Ответы
    110 Просмотры
    Последнее сообщение Anonymous
  • Почему сбор LazyFrame перед объединением в Polars решает мою проблему с несоответствиями индексов?
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

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