polar用字符串格式创建列



我有一个极地数据框架:

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']})
tbody> <<tr>
schema_nametable_namecolumn_name
testrongchematest_tabletest_column, test_column_2
testrongchema_2test_table_2test_column

另一个选择是使用polars.format来创建字符串。例如:

date_field_value_max_query = (
'''select {} as schema_name,
{} as table_name,
greatest({})
from {}.{}
group by 1, 2
'''
)
(
df
.with_columns([
pl.format(date_field_value_max_query,
'schema_name',
'table_name',
'column_name',
'schema_name',
'table_name')
])
)
shape: (2, 4)
┌───────────────┬──────────────┬────────────────────────────┬─────────────────────────────────────────────┐
│ schema_name   ┆ table_name   ┆ column_name                ┆ literal                                     │
│ ---           ┆ ---          ┆ ---                        ┆ ---                                         │
│ str           ┆ str          ┆ str                        ┆ str                                         │
╞═══════════════╪══════════════╪════════════════════════════╪═════════════════════════════════════════════╡
│ test_schema   ┆ test_table   ┆ test_column, test_column_2 ┆ select test_schema as schema_name,          │
│               ┆              ┆                            ┆        test_table as table_name,            │
│               ┆              ┆                            ┆        greatest(test_column, test_column_2) │
│               ┆              ┆                            ┆     from test_schema.test_table             │
│               ┆              ┆                            ┆     group by 1, 2                           │
│               ┆              ┆                            ┆                                             │
│               ┆              ┆                            ┆                                             │
│ test_schema_2 ┆ test_table_2 ┆ test_column                ┆ select test_schema_2 as schema_name,        │
│               ┆              ┆                            ┆        test_table_2 as table_name,          │
│               ┆              ┆                            ┆        greatest(test_column)                │
│               ┆              ┆                            ┆     from test_schema_2.test_table_2         │
│               ┆              ┆                            ┆     group by 1, 2                           │
│               ┆              ┆                            ┆                                             │
│               ┆              ┆                            ┆                                             │
└───────────────┴──────────────┴────────────────────────────┴─────────────────────────────────────────────┘

最新更新