欢迎光临散文网 会员登陆 & 注册

【第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控(完整代码)--第一部分

2023-03-11 20:46 作者:锋崽噢  | 我要投稿

 接下来会根据各个表的变量对问题进行分析和建模

里面最重要的就是如何确定密接者和次密接者

密接者为距离阳性人员0-800米和在同一场所,次密接者为800-1400米间和不同场所间

我的思路是根据各个人员的坐标场所坐标,所对周围人群进行辐射的进行确定,并且受辐射时长影响。

换句话说,一个阳性人员在以他为半径内对一定距离的人产生了影响,这一定距离的人会对他所在地的附近人群产生一些

其次根据核酸检验结果对密接者和次密接者是否感染进行有效筛选-考虑时间前后

完整代码链接:https://mbd.pub/o/bread/ZJaWlJZx

第一部分-数据处理和探讨


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  探索性可视化

-------只展示部分

  

 


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

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

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

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

 

  

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

#八百米为传播路径,在以坐标100-400米内为密接触者

#等待下一博客更新(预计3-12---3-14号间)










【第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控(完整代码)--第一部分的评论 (共 条)

分享到微博请遵守国家法律