Как создать lazy_evaluated столбцы данных в Pandas
Много раз, у меня большой датафреймdf
для хранения базовых данных, и необходимо создать еще много столбцов для хранения производных данных, рассчитанных по столбцам базовых данных.
Я могу сделать это в Пандах как:
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)
и т.д. Pandas будет вычислять и выделять память для всех производных столбцов одновременно.
Теперь я хочу иметь ленивый механизм оценки, чтобы отложить вычисление и выделение памяти для производных столбцов до момента фактической необходимости. Определенно определите lazy_eval_columns как:
df['derivative_col1'] = pandas.lazy_eval(df['basic_col1'] + df['basic_col2'])
df['derivative_col2'] = pandas.lazy_eval(df['basic_col1'] * df['basic_col2'])
Это сэкономит время и память, как, например, в Python-генераторе «yield».df['derivative_col2']
Команда только инициирует конкретные вычисления и распределение памяти.
Так как делатьlazy_eval()
в пандах? Любые советы / мысли / ссылки приветствуются.