Bom dia gente !!
Estou avançando nos estudos de python para data science e passando a conhecer mais a biblioteca Pandas. Para me exercitar nisto resolvi tentar eu mesmo pegar algum banco de dados e fazer minha própria leitura.
Vou expor aqui o passo a passo do que fiz até chegar no meu problema
- Fiz a leitura do arquivo csv associando-o a uma variável
df_crimes_violentos_2018_2023 = pd.read_csv('D:\IAGO RODRIGUES\Documents\Dados segurança pública\MG\Banco Crimes Violentos - 2018-2023.csv', sep= ';', encoding= 'ANSI')
- Verifiquei os valores únicos presentes em determinada coluna
df_crimes_violentos_2018_2023['Natureza'].unique()
array(['Estupro Consumado', 'Estupro de Vulnerável Consumado',
'Estupro de Vulnerável Tentado', 'Estupro Tentado',
'Extorsão Consumado', 'Extorsão Mediante Sequestro Consumado',
'Extorsão Tentado', 'Homicídio Tentado', 'Roubo Consumado',
'Roubo Tentado', 'Sequestro e Cárcere Privado Consumado',
'Sequestro e Cárcere Privado Tentado',
'Homicídio Consumado (Registros)'], dtype=object)
- Criei uma variável determinando quais os tipos de informações presentes nessa coluna me interessariam
cr_patr_viol = ['Extorsão Consumado','Extorsão Tentado','Extorsão Mediante Sequestro Consumado','Roubo Consumado','Roubo Tentado']
Foi desse momento pra frente que passei a ter problemas. Resolvi usar o método query para realizar a filtragem dos dados, associando o query a variável criada. Fiz da seguinte forma e obtive o seguinte erro
df_crimes_violentos_2018_2023.query("Natureza" in @cr_patr_viol")
Cell In[22], line 1
df_crimes_violentos_2018_2023.query("Natureza" in @cr_patr_viol")
^
SyntaxError: unterminated string literal (detected at line 1)
Eu não entendi a ideia por trás do erro de sintaxe apontado
Tentei usar outras formulas para evitar isso, tendo inclusive especificado na própria query a lista dos crimes contidos na variável e o problema se repetiu
A única forma que deu certo foi mais custosa, sendo que eu usei o operador 'or' resultando em uma linha de código muito extensa e pouco prática na minha opinião. Foi a seguinte
df_crimes_violentos_2018_2023.query("Natureza == 'Extorsão Consumado' or Natureza == 'Extorsão Tentado' or Natureza == 'Extorsão Mediante Sequestro Consumado' or Natureza == 'Roubo Consumado' or Natureza == 'Roubo Tentado'")
Vocês poderiam me fornecer algum insight sobre isto