《《数据分析(Python)》课程报告模版.docx》由会员分享,可在线阅读,更多相关《《数据分析(Python)》课程报告模版.docx(18页珍藏版)》请在课桌文档上搜索。
1、(华东)CHINAUNIVERSITYOFPETRO1.EUM20232024学年第2学期数据分析(PythOn)课程报告专业班级姓名学号成绩评阅教师张学辉2024年4月26日基于印度人口数据挖掘报告一、数据描述1数据来源:数据是关于2020年世界各国家人口的数据,是关于1950年至2021年印度人口数量和人口增长率的数据。2数据获取:1950年至2021年印度人口数量和人口增长率等并将获这些信息暂存于EXCeI文件中。3数据种类:年份Year印度人口数量Population人口增长率GrOWthRate:(年末人口数-年初人口数)/年平均人口X1000%。人口增长率是反映人口发展速度和制定人
2、口计划的重要指标,也是计划生育统计中的一个重要指标,它表明人口自然增长的程度和趋势。人口的力量正在把世界分成两部分:人口增长缓慢的地区,生活条件正在得到改善:人口增长迅速的地区,生活条件正在恶化。人口的迅速增长抵销了农业和经济方面的部分差距。4使用工具:PythOn是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的1.ISP。Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C+或Java,Python让开发者能够用更少的代
3、码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。5数据主要内容通过这两个方面的数据分析,我们可以分析出近几十年来印度人口的数量变化趋势,来进一步分析印度经济发展和人口的关系。此份数据主要是针对印度从1950年到2021年每年的人口数量以及人口增长率及相应变化,通过人口数量以及人口增长率可以分析印度人口的具体情况,明确印度人口数量的多少;通过人口数量和人口增长率可以分析影响各印度人口变化的主要因素,并且通过各因素的情况进一步研究深入推理出印度相应政策以及经济状况的影响。二、数据预处理数据中具体的人口数量和增长率,并没有通过己有数据对未来的人口数量进行预测,不便于解决如印度人
4、口预计在哪一年达到20亿人口等问题。我们可以通过线性回归分析,线性回归是利用数理统计中同归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y=wx+e,e为误差服从均值为0的正态分布。从而得出从2021年到2069年的预测人口数量,便于绘图进行分析印度过去和未来的人口变化趋势。1.首先导入代码所需库importpandasasPdimportmatplotlib.pyplotaspitimportseabornassnsimportwarningswarnings.filterwarnings(,ignore,)2.数据读入data=d.read
5、_csv(IndiaPopulation_2021.csv,)print(data.head()效果展示:D:pyynewScriptspython.exeD:pythonProject5main.pyYearPrediction020211.375952e+09120221.391362e+9220231,06771e+0932024I.22181e+942025I.3759e+9进程已结束,退出代码为02.数据处理将数据按照年份排序data=data.sort_values(,Year,).set_index(,Year,)print(data)效果展示:PopulationGrowthR
6、ateYear195B3763252000.0019513823769481.6119523887990731.6819533955443691.7319544025785961.78201713386767851.072B18135264228。21913664177541.022021380003850.9920211393090380.9772rowsx2columns进程已结束,退出代码为0三、数据分析1缩小区间由于数据复杂,我们需要进行区间的缩小增大数据的可视化。year_data=data.iloc0:Ien(data):10print(year_data)效果展示:D:pyyne
7、wScriptspython.exeD:/pythonProject5main.pyPopulationGrowthRateYear1950376325200.19604585476791.98197G5551897922.2319806989528442.3419908732777982.102010565755491.7821123A2811701.3622O138000385.99进程已结束,退出代码为02筛选出增长率大于2的年份gr_year=datadata(,GrowthRate,2)Print(gr_year)效果展示:D:pyynewScriptspython.eeD:pyth
8、onProject5main.pyPopulationGrowthRateYear19614596421652.0219624690771902.0519634788256082.0819644888481352.0919654991233242.1019665096315002.1119675204005762.1119685315138242.1419695430843362.1819705551897922.2319715678680182.2819725810872562.331973594771342.351974688262.361975623128972.351976637630
9、0872.3319776524087762.3219786674998062.3119796829953542.32198069895284423419817153849932.3519827322395042.3619837494289582.35198476683341。2.3219857843682.2919868019752442.2519878196821022.2119888374689302.1719898553346782.1319908732777982.1019918912732092.0619929093070162.02进程已结束,退出代码为由此我们得出,大量年份人口的
10、增长率大于2,是印度人口增长迅速的直接原因之一。3人口预测fromsklearn.linear_modelimport1.inearRegressionIr=1.inearRegression()X=data,Year)Y=data,Populationmodel=Ir.fit(XzY)Pred_X=pd.DataFrame(list(range(2021,2070),columns=,Year,)Pred_X,Prediction,=model.predict(Pred_X(Year,)效果展不:YearPrediction20211.375952e+09120221.391362e+092
11、20231.06771e+0932024I.422181e+9420251.43759e+952026I.52999e+962027l46849e+6972028I483818e+982029l.99228e+09920301.514637e91020311.53O07e+09112032I.545456e+91220331.560865e+091320341.576275e+091420351.591684e+91520361.6O79e+091620371.62253e+091720381.637913e+091820391.653322e+091920401.668731e+092020
12、41l684141e+092120421.69955e+092220431.7196Oe+092320441.730369e+092420451.75779e+092520461.761188e+092620471.776597e+092720481.7920O7e+92820491.87416e+092920501.822826e+093020511.838235e+093120521.85365e+093220531.8695e+093320541.884463e+09342551.899873e+093520561.915282e+093620571.930692e+093720581.
13、96101e+09382591.961511e+93920601.976920e+O94。20611.99233e+09412622.7739e+094220632.2318e+94320642.038558e+094420652.053967e+O94520662.069377e+O94620672O84786e+094720682.100196e+094820692.115605e+O9进程已结束,退出代码为O由线性回归分析我们得到印度人口将在2062年达到20亿人。四、数据可视化展示1人口数量柱状图绘制pit.figure(figsize=(15,5)pit.title(,Barplot
14、forPopulationbyYear,fontsize=15)sns.barplot(data.index,data.Population)pit.show()效果展示:le9SrPIororPOPWagnbyar2缩小区间折线图pit.figure(figsize=(10,5)sns.pointplot(year_data.index,year_data.Population,color=,red,)pit.show()效果展示:3缩小区间柱状图pit.figure(figsze=(10,5)sns.barplot(year_data.index,year_data.Population)
15、pit.show()效果展示:14121.O08060400le9195019702000201020204人口数量点状图绘制pit.figure(figsize=(10,5)pit.title(,ScatterplotforPopulation,)sns.scatterplot(data.index,data.Population,s=100zalha=0.5,color=,red*)效果展不:Ie9ScattefplotforPopulabon19701980199020002010202042o36II100041950I960由此我们可以很清楚的看出印度人口数量几乎以不变的速率增长,并
16、且增长速度极快,我们需要结合人口的增长率进一步进行分析。5增长率点状图pit.figure(figsize=(10,5)pit.title(,ScatterplotforGrowthRate,)sns.scatterplot(data.index,data.GrowthRatezs=100,alpha=0.5zcolor=,green,)pit.show()效果展示:ScatterplotforGrowtbRate197019801990200020102020O5-1.Qoo1950I960由此我们可以看出增长率呈现一个先增长后减少的趋势,并且在增加的过程中有一段时间增长率儿乎不变,可能与当
17、时印度采取了一定的措施有关。6增长率大于2点状图pit.figure(figsize=(10,5)pit.title(,ScatterPlot-GrowthRate2,fontsize=15)sns.scatterplot(gr_year.index,gr_year.Population,hue=gr_year.GrowthRate,s=100)效果展示:ScatterPlotGrowthRate2I9601%5197019751980ar9876co3Da102Z05206208209Zl2H213114217218221223225228229231132233234235236Grawt
18、hRMe7增长率大于2柱状图pit.figure(figsize=(10,5)pit.title(,CountPlot-GrowthRate2,fontsize=15)sns.countplot(gr_year.GrowthRate)pit.show()效果展示:CountPlotGrowthRate240-1510Izo-:QS-008曲线图norm_data.plot()pit.show()由图我们将两条曲线结合分析可以得出人口数量的曲线虽然一直上升,但是斜率却发生了变化,总体的人口数量曲线由下凸变为上凸,与人口增长率的曲线对应。9线性回归分析将利用线性回归分析得出的印度2021年到206
19、9年的人口数量绘制在人口数量折线图中,如下:sns.lineplot(x=data,Year,y=data,Population,)sns.lineplot(x=Pred_X,Year,y=Pred_XPrediction,color=black)效果展不:Ie92.00-1.75-1.50-1.25-1.00-0.75-0.50-196019802000202020402060fear通过对数据的可视化分析,得出以下三点结论:(1)印度人口增长较快。虽然印度政府采取措施控制人口增长,但因为人口基数大,每年新增人口1500多万。(2)根据线性回归分析,印度将在2062年达到20亿人(3)印度人
20、口众多,人口增长快,造成人均资源、人均粮食不足,延缓国民经济的发展。通过查阅资料,得出近50年来印度人口增长率下降的原因是:50年来除了19777979年计划生育工作一度陷入停顿以外,计划生育工作一直在不断加强。中央政府也很重视从经济上支持计划生育,并不断增加这一事业的财政拨款。印度政府对医疗卫生和计划生育的投资额从“三五”计划时期的25.08亿卢比增加到“六五”计划时的341.33亿卢比,再到“七五”时的680.94亿卢比,及“八五”时的1596.56亿卢比。大量的预算投入使得印度的人口数量得到了有效的控制。启示人口大国要采取积极正确的政策来解决人口问题,中国实行计划生育效果很好,人口得到了
21、非常有效的控制。今年的5月31号政府实行了三孩政策,为了防止人口老龄化.人口问题是每个国家都必须重视的问题,只有将人口问题解决好,才能让每一个人都拥有幸福的生活。五、遇到的问题与解决方法列举3-5个典型问题及解决方法1、问题:采用相对路径读入CSV文件时,文件没有放入项目文件夹中,导致报错。解决:2.问题:保存新的CSV文件时,准备修改资料文件夹中的同名csv,但是始终没有效果。解决:打开项目文件夹发现程序自动创建了一个CSV文件。六、学习总结与反思本次的PythOn数据挖掘作业,通过将数据进行可视化展示,通过这次的大作业我收获颇多,主要分为如下两点:一、将数据表格进行可视化展示:我学习到了如
22、何用Python读取数据表格,如何再利用读取到的数据绘制可视化的图形。在绘制图形时,我选取了matplotlib库,通过网上学习,我掌握了Oiatplotlib库绘制柱状图和折线图的方法,极大的锻炼了我的代码能力和自学能力。二、加强了数据分析能力:拿到数据后,首先大致对印度人口的数量有一个大致的了解,之后选择要研究的问题:印度近几十年来的人口数量变化趋势,印度人口将在哪一年达到20亿人。印度人口数量不仅仅是一些数字,也从侧面反映出印度经济的发展和政策的实施,人口数量。在这次的大作业中我也有许多的思考,在制作PPT时,一定要选用简洁大方的背景图片,不能与文本文字的颜色相冲突,并且要对数据的变化进
23、行必要的资料查阅。此外,我在代码能力上还有所欠缺,对PythOn的操作不是很熟悉,需要多加练习。我在今后一定会加强练习,不断提高自己的编程能力,学好计算机语言。经过半学期的学期,加上这一次的数据分析大作业,我已经基本能够用Python解决一些简单的、小规模的问题了。经过一次大作业,我的的确确收获很多。在这之前虽然写过一些实用代码,但是都是碎片化的、随写随用的一点小脚本,十几行,难度都不大,这次大作业可以说是我第一次解决一个有一定规模的实际问题,让我对编程的学习有了更深的了解谢谢老师提供了这次实践的机会,也希望在以后的学习生活中,我能掌握更多的技能,学到更多的知识!评分参考得分(1)数据描述:数据来源明确,字段描述清楚(2)数据预处理:是否进行了有效处理,并阐述了原因(3)数据分析:多角度数据分析,描述清楚准确(4)可视化展示:多种图表展示,图表类型选择恰当,图表美观完整,对于图表结果能得出相关结论(5)问题及解决方法:遇到的问题是否描述清楚,解决方法是否清晰(6)文档结构完整、格式排版美观、描述清楚准确