1
resposta

É possível argumento em split no slice do DataFrame?

Gostaria de saber se há possibilidade de utilizar um split como argumento dos slices no DataFrame. ex:

df =

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade ) |

selecao = 'l1 c2'.split()

['l1','c2']

df.loc[selecao]

resultado esperado: 2

1 resposta

Boa noite. Da forma como foi exemplificada acima não funcionaria. Isso porque a função split retorna uma lista, e a lista dentro do .loc[] no Pandas (ou seja, df.loc[[i, j]], por exemplo) é entendido como possibilidades de valores. No caso do seu exemplo, o Pandas retornaria apenas as linhas com índices de valores "l1" ou "c2".

Porém existem sim algumas formas de fazer o que você deseja. A primeira seria "desmembrar" a lista e informar os valores de forma separada como por exemplo:

df.loc[selecao[0], selecao[1]]
# Lembre-se apenas de que se o índice e/ou a coluna for de um tipo numérico, você precisará converter a string em número

Agora, uma forma que eu pessoalmente uso mais no meu dia-a-dia é a seguinte:

df.loc[index][coluna]
# Ou ainda:
df[coluna].loc[index]

Espero ter ajudado. Fico a disposição se ainda restarem dúvidas.

PS: Caso algum outro aluno conheça um método mais eficiente ou mais parecido com o exemplo da pergunta, ficaria feliz em conhecer também.