Eu tenho uma coluna de strings onde a parte final contém algumas informações que preciso analisar em suas próprias colunas. Pandas tem a função rsplit para dividir uma string da direita, que faz exatamente o que preciso:
import pandas as pd
pd.DataFrame(
{
"name": [
"some_name_set_1",
"some_name_set_1b",
"some_other_name_set_2",
"yet_another_name_set_2",
]
}
)["name"].str.rsplit("_", n=2, expand=True)
0 1 2
0 some_name set 1
1 some_name set 1b
2 some_other_name set 2
3 yet_another_name set 2
Como posso imitar esse comportamento em Polars, que não tem rsplit
expressão no momento?
Aqui está uma maneira de usar apenas uma
.split
e depois três operações slice/get diferentes para obter as 3 partes:Saída:
Relacionado: Este problema está rastreando a adição de
right
divisão de strings.Um único separador de caracteres pode ser expresso em termos de regex:
Mas é limitado e um tanto estranho de grocar/digitar.
Uma solução é fazer isso em duas partes
Para a parte do nome (o lado esquerdo da string):
Para a parte do conjunto e do número: