背景问题
本数据集来源于印度政府官方网站[data.gov.in],涵盖了从2001年至2021年间针对妇女的一系列犯罪行为的全州统计数据。该数据集详细记录了各类针对女性的犯罪案例,包括但不限于强奸、绑架、嫁妆死亡等严重违法行为。通过对这些年来犯罪模式的变化趋势进行分析,可以帮助政策制定者和执行机构更好地理解影响女性安全的关键因素,并据此设计有效的预防和应对策略。
数据说明
问题描述
地区对比分析
时间趋势分析
犯罪类型相关性分析
数据预处理
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
df = pd.read_csv(r'/home/mw/input/08236512/CrimesOnWomenData.csv',index_col=0)
df.head()
print('-'*50)
print('数据集大小:',df.shape)
print('-'*50)
print('数据集重复值个数:',df.duplicated().sum())
print('-'*50)
print('数据集缺失值个数:',df.isna().sum())
print('-'*50)
print('数据集信息:',df.info())
将Year的数据类型修改为object。
df['Year'] = df['Year'].astype('object')
接下来给数据添加案件总数计算列,即每个地区每年发生的案件总数。
# CT:Case Total
df['CT'] = df.iloc[:,2:-1].sum(axis=1)
print(df.head())
查看地区名称是否存在不规范的问题,例如格式拼写(受蓝皮怪的启发)。
print('原数据的地区唯一值有:',df['State'].nunique())
print(df['State'].unique())
有的地名是全部大写,有的是首字母大写,这就需要将所有地区名称标准化为首字母大写。另外,D&N Haveli和D & N Haveli是同一个地名,因此也需要进行处理。
df['State'] = df['State'].str.title()
df['State'] = df['State'].replace('D&N Haveli','D & N Haveli')
print('现数据的地区唯一值有:',df['State'].nunique())
print(df['State'].unique())
display('数据集统计描述:',df.describe(include='all'))
解读:
- State:一共有36个唯一值地区,其中最常见的地区是Andhra Pradesh(26条记录)。
- Year:一共有21个唯一值年份,即2001年到2021年,其中被涉及最多的年份是2011年。
- Rape:</