Estou trabalhando com a Polars DataFrame
e quero combinar duas colunas em um formato de dicionário, onde os valores de uma coluna se tornam as chaves e os valores da outra coluna se tornam os valores correspondentes.
Aqui está um exemplo de DataFrame:
import polars as pl
df = pl.DataFrame({
"name": ["Chuck", "John", "Alice"],
"surname": ["Dalliston", "Doe", "Smith"]
})
Quero transformar esse DataFrame em uma nova coluna que contenha dicionários, onde nome é a chave e sobrenome é o valor. O resultado esperado deve ser assim:
shape: (3, 3)
┌───────┬─────────┬──────────────────────────┐
│ name │ surname │ name_surname │
│ --- │ --- │ --- │
│ str │ str │ dict[str, str] │
├───────┼─────────┼──────────────────────────┤
│ Chuck │ Dalliston│ {"Chuck": "Dalliston"} │
│ John │ Doe │ {"John": "Doe"} │
│ Alice │ Smith │ {"Alice": "Smith"} │
└───────┴─────────┴──────────────────────────┘
Eu tentei o seguinte código:
df.with_columns(
json = pl.struct("name", "surname").map_elements(json.dumps)
)
Mas o resultado não é o esperado. Em vez de criar um dicionário com key-value
, produz:
{name:Chuck,surname:Dalliston}
Você pode tentar este trecho de código. Este parece ser o mais próximo que você pode chegar, pois não possui um ditado ingênuo.
Veja referência: data_types_polaris
Isso retornará um json como string