Jak utworzyć kolumny leniwych danych w Pandach
Wiele razy mam dużą ramkę danychdf
do przechowywania podstawowych danych i tworzenia większej liczby kolumn do przechowywania danych pochodnych obliczanych przez podstawowe kolumny danych.
Mogę to zrobić w Pandach takich jak:
df['derivative_col1'] = df['basic_col1'] + df['basic_col2']
df['derivative_col2'] = df['basic_col1'] * df['basic_col2']
....
df['derivative_coln'] = func(list_of_basic_cols)
itd. Pandy obliczą i przydzielą pamięć dla wszystkich kolumn pochodnych jednocześnie.
Chcę teraz mieć leniwy mechanizm oceny, aby odłożyć obliczenia i alokację pamięci kolumn pochodnych na rzeczywisty moment potrzeby. Nieco zdefiniuj lazy_eval_columns jako:
df['derivative_col1'] = pandas.lazy_eval(df['basic_col1'] + df['basic_col2'])
df['derivative_col2'] = pandas.lazy_eval(df['basic_col1'] * df['basic_col2'])
Pozwoli to zaoszczędzić czas / pamięć, takie jak generator wydajności „Pythona”, jeśli wystąpiędf['derivative_col2']
Polecenie będzie trigerować tylko określone obliczenia i alokację pamięci.
Więc jak to zrobićlazy_eval()
w Pandach? Każda wskazówka / myśl / ref są mile widziane.