我正在使用Polars DataFrame
,我想将两列组合成字典格式,其中一列的值成为键,另一列的值成为相应的值。
这是一个 DataFrame 示例:
import polars as pl
df = pl.DataFrame({
"name": ["Chuck", "John", "Alice"],
"surname": ["Dalliston", "Doe", "Smith"]
})
我想将此 DataFrame 转换为包含字典的新列,其中 name 是键,surname 是值。预期结果应如下所示:
shape: (3, 3)
┌───────┬─────────┬──────────────────────────┐
│ name │ surname │ name_surname │
│ --- │ --- │ --- │
│ str │ str │ dict[str, str] │
├───────┼─────────┼──────────────────────────┤
│ Chuck │ Dalliston│ {"Chuck": "Dalliston"} │
│ John │ Doe │ {"John": "Doe"} │
│ Alice │ Smith │ {"Alice": "Smith"} │
└───────┴─────────┴──────────────────────────┘
我尝试过以下代码:
df.with_columns(
json = pl.struct("name", "surname").map_elements(json.dumps)
)
但结果并不像预期的那样。key-value
它没有使用 创建字典,而是生成了:
{name:Chuck,surname:Dalliston}
您可以尝试此代码片段,这似乎是您能获得的最接近的,因为 pl 没有简单的字典。
参见参考:data_types_polaris
这将返回一个 json 字符串