У меня есть функция, которая запускается в цикле и выполняет вычисления над списком массивов.
В какой-то момент во время первой итерации функции инициализируется ленивый кадр 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
При возврате кадра данных вне функции имена столбцов больше не в порядке, но данные в порядке.
например,
Я предполагаю, что это связано с моей наивностью в отношении того, как работают ленивые фреймы, но есть ли способ обеспечить порядок без переименования столбцов?
Спасибо .
У меня есть функция, которая запускается в цикле и выполняет вычисления над списком массивов. В какой-то момент во время первой итерации функции инициализируется ленивый кадр Polars. p> На следующих итерациях новый фрейм данных указывается с использованием той же схемы, и два фрейма данных соединяются построчно с помощью pl.vstack, а затем снова указываются как ленивый фрейм. [code] 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)
#append new dataframe to results result_df = result_df.collect().vstack(new_df, in_place=True).lazy()
return result_df
[/code] При возврате кадра данных вне функции имена столбцов больше не в порядке, но данные в порядке. например,[code]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)]) [/code] Я предполагаю, что это связано с моей наивностью в отношении того, как работают ленивые фреймы, но есть ли способ обеспечить порядок без переименования столбцов? Спасибо .
У меня есть LazyFrame в Python, и я хотел бы добавить в него столбцы из другого LazyFrame . Два LazyFrames имеют одинаковое количество строк и разных столбцов. >def append_columns(df:pl.LazyFrame):
df2 = pl.LazyFrame( )
return df.with_columns(df2)...
У меня есть CSV-файл размером 70 ГБ. Я хочу загрузить DF и посчитать количество строк в ленивом режиме. Как лучше всего это сделать?
Насколько я могу судить, согласно документации, в ленивом режиме нет такой функции, как shape.
Я нашел этот ответ,...
Я хотел бы отложенно загрузить большой файл паркета. Затем мне нужно обработать его пакетно, потому что я пишу в базу данных, и существует ограничение на количество строк, которые можно записать в базу данных одновременно. В LazyFrame нет метода...
РЕДАКТИРОВАТЬ
Вот пример, который можно запустить и который демонстрирует проблему. Начальный LazyFrame включает попарные расстояния между точками на плоскости. Поскольку расстояние A->B равно расстоянию B->A, я сохраняю только уникальные пары, а...