Tenho um dicionário de colunas aninhadas com o índice como chave em cada uma. Quando tento convertê-lo para um dataframe polars, ele busca os nomes das colunas e os valores corretos, mas cada coluna tem apenas um elemento que é o dicionário dos elementos da coluna, sem "expandi-lo" em uma série.
Um exemplo, digamos que eu tenha:
d = {'col1': {'0':'A','1':'B','2':'C'}, 'col2': {'0':1,'1':2,'2':3}}
Então, quando eu faço um pl.DataFrame(d)
ou pl.from_dict(d)
, eu obtenho:
col1 col2
--- ---
struct[3] struct[3]
{"A","B","C"} {1,2,3}
Em vez do dataframe regular.
Alguma ideia de como consertar isso?
Desde já, obrigado!
Não há uma maneira particularmente direta de fazer isso. Você essencialmente tem que pegar cada coluna uma de cada vez e desarticular e então juntar cada coluna novamente.
Configurar
Para (o que eu acho que é a) saída desejada
Simplificado se as chaves de índice tiverem garantia de serem balanceadas
Se você tiver certeza de que as chaves de suas colunas aninhadas sempre serão uniformes e classificadas, você pode fazer isso como um
map_batches
loop em vez de um for com junções.