Bom dia,
Estou tentando converter um polars df para um objeto json (em python), mas não consigo encontrar uma maneira de alterar o formato dele entre orientação de linha/coluna. No Pandas, por padrão, ele cria um objeto JSON orientado a colunas, e pode ser alterado facilmente, mas no Polars ele é orientado a linhas e não consigo encontrar uma maneira de alterar isso, já que o write_json
método não recebe nenhum argumento além do nome do arquivo de destino se você quiser salvá-lo diretamente.
Alguma ideia de como conseguir isso?
Desde já, obrigado!
Para obter uma estrutura JSON orientada a colunas , você precisa transformar o
DataFrame
para aDictionary
antes de exportar. Exemplo:Saída:
{"A": [1, 2, 3], "B": [4, 5, 6]}
É possível atingir todas as orientações em Polars também. Só requer um pouco mais de criatividade e
json.dumps()
em vez dewrite_json
sozinho. Eu compilei um mapeamento das diferentes orientações do Pandas para o equivalente Polars abaixo. Usando o mesmo dataframe para cada exemplo.O índice um parece ser um pouco mais complicado do que o necessário. Talvez haja uma maneira melhor de fazer isso?
orient="records"
df.write_json()
orient="columns"
json.dumps(df.to_dict(as_series=False))
orient="index"
json.dumps({i: row for i, row in enumerate(df.iter_rows(named=True))})
orient="values"
json.dumps(df.to_numpy().tolist())