<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Vou selecionar homicídio qualificado, Lesão Corporal seguida de morte, que são os 2 crimes com dolo que resultam em morte.
Step1:  Abaixo faço um for loop pra construir um dataframe apenas desses dois crimes
Step2:  Quais os meses, dias da semana e horários mais comuns de ocorrências de homicídio qualificado ?
Step3:  Agora, os estudos usando Time Series
Step4:  Abaixo, só confirmando o datetime criado!
<ASSISTANT_TASK:>
Python Code:
list = ['HomicÃ­dio qualificado (art. 121, Â§2o.)']
list
df.head()
Explanation: Vou selecionar homicídio qualificado, Lesão Corporal seguida de morte, que são os 2 crimes com dolo que resultam em morte.
End of explanation
for i in list:
    df = df[df['RUBRICA']==i]
    
    
df.head(3)
df['DATA_OCORRENCIA_BO'] = pd.to_datetime(df['DATA_OCORRENCIA_BO'])
Explanation: Abaixo faço um for loop pra construir um dataframe apenas desses dois crimes:
End of explanation
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
sns.set_style('darkgrid')
df['dia_da_semana'] = df['DATA_OCORRENCIA_BO'].dt.weekday_name
df['mes'] = df['DATA_OCORRENCIA_BO'].dt.month
semana = pd.DataFrame(df['dia_da_semana'].value_counts())
semana
semana.plot(title = 'Distribuição dos Homicídios por dia da Semana' , kind='barh',color = 'red', use_index=True, legend=True, sort_columns=True)
mes =  pd.DataFrame(df['mes'].value_counts())
mes.head()
mes.plot(title = 'Distribuição dos Homicídios por dia mês' , kind='barh',color = 'blue', use_index=True, legend=True, sort_columns=True)
top_10_horario_crimes = pd.DataFrame(df['HORA_OCORRENCIA_BO'].value_counts().head(10))
top_10_horario_crimes
top_10_horario_crimes.plot(title = 'Top 10 de horarios de maior ocorrencia de crimes' , kind='barh',color = 'purple', use_index=True, legend=False, sort_columns=True)
top_10_logradouros_mais_homicidios = pd.DataFrame(df['LOGRADOURO'].value_counts().head(10))
top_10_logradouros_mais_homicidios
top_10_logradouros_mais_homicidios.plot(title = 'Top 10 logradouros com maior ocorrencia de homicídios' , kind='bar',color = 'green', use_index=True, legend=False, sort_columns=True)
df.info()
motivacao_homicidios = pd.DataFrame(df['DESDOBRAMENTO'].value_counts())
motivacao_homicidios.plot(title = 'Motivação dos homicídios' , kind='bar',color = 'pink', use_index=True, legend=True)
top_10_idades_vitimas = pd.DataFrame(df['IDADE_PESSOA'].value_counts().head(10))
top_10_idades_vitimas
top_10_idades_vitimas.index.name = 'Idades'
top_10_idades_vitimas.plot(title = 'As idades mais comuns das vítimas' , kind='bar',color = 'orange', use_index=True, legend=False)
top_10_idades_vitimas.index.name = 'Idades'
import pandas as pd
values = [[1,2], [2,5]]
df = pd.DataFrame(values, columns=['Type A', 'Type B'], index=['Index 1','Index 2'])
df.columns.name = 'Type'
df.index.name = 'Index'
df.plot(lw=2, colormap='jet', marker='.', markersize=10, title='Video streaming dropout by category')
sexo = pd.DataFrame(df['SEXO_PESSOA'].value_counts())
sexo
nd : str
‘line’ : line plot (default)
‘bar’ : vertical bar plot
‘barh’ : horizontal bar plot
‘hist’ : histogram
‘box’ : boxplot
‘kde’ : Kernel Density Estimation plot
‘density’ : same as ‘kde’
‘area’ : area plot
‘pie’ : pie plot
‘scatter’ : scatter plot
‘hexbin’ : hexbin plot
sexo.plot(title = 'Sexo das vítimas' , kind='pie', use_index=True, legend=False , subplots = True)
delegacia = pd.DataFrame(df['NOME_DELEGACIA'].value_counts())
delegacia.head()
top10_delegacias_homicidios = delegacia.head(10)
top10_delegacias_homicidios
top10_delegacias_homicidios.plot(title = 'As 10 delegacias com maior registro de homicidios' , kind='pie', use_index=True, legend=False , subplots = True)
Explanation: Quais os meses, dias da semana e horários mais comuns de ocorrências de homicídio qualificado ?
End of explanation
df['NUM_BO'].plot(legend=True,figsize=(10,4))
timestamp = df[['DATA_OCORRENCIA_BO','HORA_OCORRENCIA_BO']]
#allDays = pd.DataFrame(df.set_index('timestamp').groupby(pd.TimeGrouper('1H')).sum())
timestamp.head()
timestamp['DATA_OCORRENCIA_BO'] = timestamp['DATA_OCORRENCIA_BO'].astype(str)
timestamp.info()
datetime = timestamp['DATA_OCORRENCIA_BO'] + ' ' + timestamp['HORA_OCORRENCIA_BO']
datetime = pd.DataFrame(datetime)
datetime.head()
datetime = pd.to_datetime(datetime[0])
datetime.head()
datetime = pd.DataFrame(datetime)
datetime = datetime.rename(columns={0: 'data_e_hora'})
datetime
df = pd.merge(df, datetime, left_index=True, right_index=True, how='outer')
df.info()
df
Explanation: Agora, os estudos usando Time Series
End of explanation
df[['HORA_OCORRENCIA_BO','data_e_hora']].head()
df.set_index(keys = 'indices', append=True, inplace=True)
df.sort(columns='DATA_OCORRENCIA_BO', axis=0, ascending=True, inplace=False)
df.isnull().sum()
df.info()
def count(num):
    if num > 0:
        return 1
    else:
        return 'nan'
df['quantidade'] = df['mes'].apply(count)
df
df_agrupado_por_dia = pd.DataFrame(df.set_index('data_e_hora').groupby(pd.TimeGrouper('24H')).sum())
df_agrupado_por_dia
df['data_e_hora'].max()
df_agrupado_por_dia['quantidade'].plot(legend=True,figsize=(16,8))
Explanation: Abaixo, só confirmando o datetime criado!
End of explanation
<END_TASK>