Polars создает столбец с форматированием строкиPython

Программы на Python
Anonymous
Polars создает столбец с форматированием строки

Сообщение Anonymous »

У меня есть фрейм данных Polars:

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

df = pl.DataFrame({'schema_name': ['test_schema', 'test_schema_2'],
'table_name': ['test_table', 'test_table_2'],
'column_name': ['test_column, test_column_2','test_column']})


имя_схемы
имя_таблицы
имя_столбца




test_schema
test_table
test_column, test_column_2


test_schema_2
test_table_2
test_column


У меня есть строка:

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

date_field_value_max_query = '''
select '{0}' as schema_name,
'{1}' as table_name,
greatest({2})
from {0}.{1}
group by 1, 2
'''
Я хотел бы использовать поляры для добавления столбца с использованием форматирования строк. Целевой фрейм данных:



имя_схемы
имя_таблицы
имя_столбца
запрос




test_schema
test_table
test_column, test_column_2
выберите test_schema, test_table, наибольший(test_column, test_column_2) из ​​группы test_schema.test_table на 1, 2


test_schema_2
test_table_2
test_column
выбрать test_schema_2, test_table_2, наибольшее(test_column) из группы test_schema_2.test_table_2 на 1, 2



В пандах я бы сделал что-то вроде этого:

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

df.apply(lambda row: date_field_value_max_query.format(row['schema_name'], row['table_name'], row['column_name']), axis=1)
Для поляров я попробовал это:

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

df.map_rows(lambda row: date_field_value_max_query.format(row[0], row[1], row[2]))
...но это возвращает только один столбец, и я теряю исходные три столбца. Я знаю, что этот подход также не рекомендуется для поляров, если это возможно.
Как выполнить форматирование строк для нескольких столбцов фрейма данных, при этом выходной столбец прикреплен к исходному фрейму данных?

Подробнее здесь: https://stackoverflow.com/questions/751 ... formatting

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