1
resposta

script apresenta inconsistências

restaurantes = restaurantes.with_columns(
pl.col('menu_item')
.str.replace('[', '')
.str.replace(']', '')
.str.split(',')
.list.eval(pl.element().str.strip_chars())
)


<>:3: SyntaxWarning: invalid escape sequence '['
<>:4: SyntaxWarning: invalid escape sequence ']'
<>:3: SyntaxWarning: invalid escape sequence '['
<>:4: SyntaxWarning: invalid escape sequence ']'
/tmp/ipython-input-2628076539.py:3: SyntaxWarning: invalid escape sequence '['
.str.replace('[', '')
/tmp/ipython-input-2628076539.py:4: SyntaxWarning: invalid escape sequence ']'
.str.replace(']', '')

1 resposta

Olá Lourenço, tudo bem?

Tenta desta forma.

restaurantes.with_columns(
    pl.col('menu_item')
    .str.replace('\[', '')
    .str.replace('\]', '')
    .str.split(',')
    .list.eval(pl.element().str.strip_chars())
)

O que está acontecendo é que quando quisermos substituir ou referenciar colchetes ou qualquer outro caractere especial precisamos colocar a barra invertida antes, para informar ao computador que o que a gente quer substituir é literalmente o caractere especial.

Por exemplo:
Quando você usa...

.str.replace('[', '')
.str.replace(']', '')

... Você informa para o computador que quer substituir nada dentro do intervalo vazio []. O que não faz sentido, por isso dá erro.

Agora, quando você usa...

.str.replace('\[', '')
.str.replace('\]', '')

... Você informa para o computador que você quer substituir os caracteres "[" e "]" por "".

Caso queira entender melhor sobre, vou deixar uma question do stackoverflow aqui.
Issue stackoverflow