【第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控(完整代码)--第一部分
接下来会根据各个表的变量对问题进行分析和建模
里面最重要的就是如何确定密接者和次密接者
密接者为距离阳性人员0-800米和在同一场所,次密接者为800-1400米间和不同场所间
我的思路是根据各个人员的坐标和场所坐标,所对周围人群进行辐射的进行确定,并且受辐射时长影响。
换句话说,一个阳性人员在以他为半径内对一定距离的人产生了影响,这一定距离的人会对他所在地的附近人群产生一些
其次根据核酸检验结果对密接者和次密接者是否感染进行有效筛选-考虑时间前后
完整代码链接:
第一部分-数据处理和探讨

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from tqdm import tqdm
import warnings
warnings.filterwarnings('ignore')import chardet
%matplotlib inline
plt.rcParams['font.sans-serif'] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
#由于文件的格式问题需要处理一下#附件的编码有问题,封装一个获取文件编码的函数def detect_encoding(file_path): with open(file_path,'rb') as f:
data = f.read()
result = chardet.detect(data) return result['encoding']# 读取人员信息表df_people = pd.read_csv('F:/python-jupyter_lianxi/3月项目/附件2.csv',encoding = detect_encoding('F:/python-jupyter_lianxi/3月项目/附件2.csv'))# 读取场所信息表df_place = pd.read_csv('F:/python-jupyter_lianxi/3月项目/附件3.csv',encoding = detect_encoding('F:/python-jupyter_lianxi/3月项目/附件3.csv'))# 个人自查上报信息表df_self_check = pd.read_csv('F:/python-jupyter_lianxi/3月项目/附件4.csv',encoding = detect_encoding('F:/python-jupyter_lianxi/3月项目/附件4.csv'))# 场所码扫码信息表df_scan = pd.read_csv('F:/python-jupyter_lianxi/3月项目/附件5.csv',encoding = detect_encoding('F:/python-jupyter_lianxi/3月项目/附件5.csv'))# 核算采样检测信息表df_nucleic_acid = pd.read_csv('F:/python-jupyter_lianxi/3月项目/附件6.csv',encoding = detect_encoding('F:/python-jupyter_lianxi/3月项目/附件6.csv'))#疫苗接种信息表
附件2-人员信息表处理



2 附件3场所信息表处理



3 附件4个人自查表-处理



附件5场所码扫码信息表 处理

体温的恒定可以用来画图
5 核酸采样信息表 处理


7 表格合并
为了方便绘图和建模,将能合并的表进行合并
人员信息表-个人自查表-场所码扫码信息表-核酸采样检测表-疫苗接种信息表
按人员信息表的user_id进行合并
由于存在多列数据不同和多列相同,所以用merge一起合并会出现问题,所以一步一步合并,并删除重复,不适合的数据



保留处理后的文件

#加载创建的EDA助手函数以进行一些高级分析#看需要来调用class EDA():
df = pd.DataFrame()
def __init__(self, df):
self.df = df
def missing_values(self):
*****
def duplicate_values(self):
*****
def duplicate_indices(self):
*****
def summary(self):
****
def pandas_profiling(self): import pandas_profiling
******
def histogram_KDE(self):
*****
def outliers(self, col):
******
def missing_timeseries_points(self, freq='D'):
***** def corr_heatmap(df):
****** def plot_time_series_seasonal_decomp(self, type='add'):
*****
def time_series_ADF(self):
from statsmodels.tsa.stattools import adfuller as ADF
series = data['KwH']
result = ADF(series) print('ADF Statistic: %f4.2' % result[0]) print('P-value %f4.2' % result[1])

#由于数据还未公布,所以需要很多数据处理功能没发调用,等数据公布再进行
8 探索性可视化
-------只展示部分




.................
................
.................
...............

#不同核酸检测阴阳性人员上报地点分布
#不同核酸检测结果的阴阳性人员上报地点分布

