3
respostas

dataframe em uma condicional

Considere que, no meu código, eu tenho uma variável chamada "mes" que armazena o daframe dos meses(na prática, ela vai referenciar o proprio dataframe, certo?). Eu tenho 12 dataframes, cada um com o nome de um mês do ano. Eu gostaria que, quando essa variavel armazenasse um determinado mês, ele imprimisse quai é o mês. Por exemplo:

if (mes == Janeiro):
   print('O mês que a variável mes está armazenando é Janeiro')
elif  (mes == Fevereiro):
   print('O mês que a variável mes está armazenando é Fevereiro')

   (...)

elif  (mes == Dezembro):
   print('O mês que a variável mes está armazenando é Dezembro')

else:
   print('A variavel mês não está armazenando nenhum mês')

Entretanto, no trecho

if (mes == Janeiro)
```,

eu tenho o erro ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

3 respostas

Olá, boa noite Rogério!

A minha interpretação acerca da sua duvida não foi muito boa. Entretanto, irei tentar lhe auxiliar da melhor forma. Para corrigir o erro que informou no final da sua dúvida é muito simples.

Você esta tentando fazer:

if (mes == Janeiro)

Quando na verdade tem de fazer isto:

if mes.query('mes == "Janeiro"'):
    ...

Segue link da documentação da Query no pandas: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html

Bom dia, não é bem assim. Imagine o seguinte: o nome do dataframe é Janeiro, assim:

import pandas as pd
Janeiro = pd.read_csv('dados/Dados_Janeiro.csv', sep = '; ')

Eu gostaria de fazer algo assim:

if (mes == Janeiro):
   print("O mês selecionado é: ", Janeiro)

Sainda desejada: O mês selecionado é Janeiro

Não existe a possibilidade do nome do dataframe ser printado na saida mais ou menos dessa forma (porque do jeito que está ele vai printar o conteudo do df e não o nome dele)? Se não, existe algum paliativo ou soluçao aproximada? Grato;

Para que você possa selecionar um DataFrame de um conjunto, é necessário ter primeiramente onde armazenar este conjunto de DataFrame. Vejamos assim:

import pandas as pd

meses_primeiro_trimestre = {
          'Janeiro':'dados/Dados_Janeiro.csv',
         'Fevereiro':'dados/Dados_Fevereiro.csv', 
         'Marco':'dados/Dados_Marco.csv'
}

# Input para seleção do mês
selecao = str(input('Digite um mês: '))
print('O mês selecionado foi {}'.format(selecao))
selecao_retorno = pd.read_csv(meses_primeiro_trimestre[selecao], sep = '; ')

Vamos que vamos! ">