2023 年第二届全国大学生数据统计与分析竞赛——世界人口的预测与分析

该文分析了1950年至2021年间全球人口变化趋势,绘制了折线图,并统计了2011至2021年各国人口增长率和增长人数。同时,展示了人口增长率最高和最低的国家名单。接着,对比了2021年各国总人口,列出最多和最少人口的国家。最后,建立了人口预测模型,预测了2100年中国、印度和全球的总人口数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题一:

(1)请绘制全球 1950~2021 年总人口随时间变化的趋势折线图,分析整体人口的变化趋势

(2)然后分别统计所有国家 2011~2021 的人口增长率和增长人数。
(3)给出人口增长率最大的前 10 个国家和最小的后 10 个国家名单,人口增长数最多
的前 10 个国家和最少的后 10 个国家名单 

# 第一小问
from matplotlib import pyplot as plt
plt.figure(figsize=(15,6),facecolor='#fff')
plt.plot(world['Year'],world['Population'])
plt.title('世界人口时序图')
plt.show()

 

# 第二小问
res2 = df[(df['Year'] >= 2011) & (df['Year'] <= 2021)].iloc[:,:3].reset_index(drop = True)
res2['growth_rate']  = res2.groupby('Country name')['Population'].pct_change()
res2['growth_count'] = res2.groupby('Country name')['Population'].diff()
res2.head()

#第三小问
pd.pivot_table(res2,index = 'Country name',values = 'growth_rate',aggfunc='max').sort_values('growth_rate',ascending = False)[:10]

pd.pivot_table(res2,index = 'Country name',values = 'growth_rate',aggfunc='max').sort_values('growth_rate',ascending = True)[:10]

pd.pivot_table(res2,index = 'Country name',values = 'growth_count',aggfunc='max').sort_values('growth_count',ascending = False)[:10]

pd.pivot_table(res2,index = 'Country name',values = 'growth_count',aggfunc='max').sort_values('growth_count',ascending = True)[:10]

 问题二:

(1)请比较 2021 年不同国家的总人口数,绘制不同国家总人口数的柱状图,

(2)并给出总人口最多的前 10 个国家和最少的后 10 个国家名单

# 第一小问
df[df['Year'] == 2021]
plt.figure(figsize=(15,6),facecolor='#fff')
plt.bar(
    df[df['Year'] == 2021]['Country name'],
    df[df['Year'] == 2021]['Population']
)
plt.xticks(df[df['Year'] == 2021]['Country name'].values[::20].tolist(),rotation = 330)
plt.show()

# 第二小问
df[df['Year'] == 2021].sort_values('Population',ascending = False)[['Country name','Population']][:10]

df[df['Year'] == 2021].sort_values('Population',ascending = True)[['Country name','Population']][:10]

 问题三:

请任选三个国家,分别绘制不同年龄段人口的直方图,对比分析年龄分布的异同点,并结合这三个国家的国情分析不同年龄段人口的分布原因

# 获取特征列
a = '''Population aged 1 to 4 years
Population aged 5 to 9 years
Population aged 10 to 14 years
Population aged 15 to 19 years
Population aged 20 to 29 years
Population aged 30 to 39 years
Population aged 40 to 49 years
Population aged 50 to 59 years
Population aged 60 to 69 years
Population aged 70 to 79 years
Population aged 80 to 89 years
Population aged 90 to 99 years
Population older than 100 years'''
columns = []
for i in a.split('\n'):
    if i != '':
        columns.append(i)

# 可视化直方图
res3 = pd.concat([df[['Country name','Year']],df[columns]],axis = 1)
plt.figure(figsize=(15,6),facecolor='#fff')
# 将年龄段和人口数量分别存入列表
ages = res3[(res3['Country name'] == 'China') & (res3['Year'] == 2021)].columns.tolist()[2:]
china_population = res3[(res3['Country name'] == 'China') & (res3['Year'] == 2021)].values.tolist()[0][2:]
usa_population = res3[(res3['Country name'] == 'India') & (res3['Year'] == 2021)].values.tolist()[0][2:]
india_population = res3[(res3['Country name'] == 'North Korea') & (res3['Year'] == 2021)].values.tolist()[0][2:]

# 设置每个柱子宽度
bar_width = 0.25

# 设置三个柱状图的偏移量
china_position = np.arange(len(ages))
usa_position = [x + bar_width for x in china_position]
india_position = [x + bar_width * 2 for x in china_position]

# 绘制三个柱状图
plt.bar(china_position, china_population, color='#867BA9', width=bar_width, label='China')
plt.bar(usa_position, usa_population, color='#A69ABD', width=bar_width, label='India')
plt.bar(india_position, india_population, color='#924F8E', width=bar_width, label='North Korea')

# 设置横坐标和标题
plt.xticks(china_position + bar_width, ages,rotation = 330)
plt.title('2021年按年龄划分的人口分布')

# 设置图例和显示图像

plt.legend()
plt.show()
# China India  North Korea

 问题四:

请建立人口预测的数学模型,然后分别预测到 2100 年底中国、印度和全球的总人口数,并分析人口的变化趋势

china = df[df['Country name'] == 'China'].iloc[:,1:3].reset_index(drop = True)
india = df[df['Country name'] == 'India'].iloc[:,1:3].reset_index(drop = True)
world = df[df['Country name'] == 'World'].iloc[:,1:3].reset_index(drop = True)
plt.figure(figsize=(15,6),facecolor='#fff')
plt.plot(china['Year'],china['Population'])
plt.title('中国人口时序图')
plt.show()

plt.figure(figsize=(15,6),facecolor='#fff')
plt.plot(india['Year'],india['Population'])
plt.title('印度人口时序图')
plt.show()

n1 = 2
yt1_china = np.convolve(np.ones(n1)/n1,china['Population'])[n1-1:-n1+1]
s1_china = np.sqrt(((china['Population'][n1:]-yt1_china[:-1])**2).mean())
s1_china,r2_score(china['Population'][n1:],yt1_china[:-1])

plt.figure(figsize=(15,6),facecolor='#fff')
plt.plot(china['Year'][2:],china['Population'][2:])
plt.plot(china['Year'][2:],yt1_china[:-1])
plt.title('中国人口时序图')
plt.legend(['实际值','预测值'])
plt.show()

 

n1 = 2
yt1_india = np.convolve(np.ones(n1)/n1,india['Population'])[n1-1:-n1+1]
s1_india = np.sqrt(((india['Population'][n1:]-yt1_india[:-1])**2).mean())
s1_india,r2_score(india['Population'][n1:],yt1_india[:-1])

plt.figure(figsize=(15,6),facecolor='#fff')
plt.plot(india['Year'][2:],india['Population'][2:])
plt.plot(india['Year'][2:],yt1_india[:-1])
plt.title('印度人口时序图')
plt.legend(['实际值','预测值'])
plt.show()

n1 = 2
yt1_world = np.convolve(np.ones(n1)/n1,world['Population'])[n1-1:-n1+1]
s1_world = np.sqrt(((world['Population'][n1:]-yt1_world[:-1])**2).mean())
s1_world,r2_score(world['Population'][n1:],yt1_world[:-1])

plt.figure(figsize=(15,6),facecolor='#fff')
plt.plot(world['Year'][2:],world['Population'][2:])
plt.plot(world['Year'][2:],yt1_world[:-1])
plt.title('世界人口时序图')
plt.legend(['实际值','预测值'])
plt.show()

 

赛氪--2023第二届全国大学生数据统计分析竞赛 竞分有A、B共两道赛题 题目A:世界人口预测分析 赛题背景   当前世界人口数量是二十世纪中期的三倍多。1950 ,全球人口约为 25 亿,到 2022 11 月中旬,这一数字已达 80 亿,自 2010 以来增加了 10 亿,自 1998以来增加了 20 亿。预计在未来 30 世界人口将增加近 20 亿,从目前的 80亿增至 2050 的 97 亿,并可能在 2080 代中期达到近 104 亿的峰值。报告指出,世界人口从 70 亿增长到 80 亿的过程中,有一半是亚洲人口扩张的结果,非洲的贡献第二大,增长了近 4 亿;有 10 个国家的人口增长占这 10 亿新增人口的一半以上,印度是最大的贡献者,其次是中国和尼日利亚。   根据联合国最近数据显示,印度已经成为世界人口最多的国家。过去三十中,印度的生育率较高,婴儿死亡率有所下降,人口轻化特点。数据显示,印度人口龄中位数为 28 岁,三分之二的印度人口在 35 岁以下。印度人口中国相当,但国土面积却不足中国的三分之一,稠密的人口使消除贫困饥饿、健全医疗教育体系的难度显著增加。   附件中提供了 1950~2021 世界各个国家的人口数据(populations.csv),同时包括了不同龄段的人口数据。请你们团队使用附件中的相关数据,进行数据统计分析,回答下列问题: 赛题任务 问题一: 请绘制全球 1950 ~ 2021 人口随时间变化的趋势折线图,分析整 体人口的变化趋势,然后分别统计所有国家2011~2021 的人口增长率和增长人数。给出人口增长率最大的前 10 个国家和最小的后 10 个国家名单,人口增长数最多的前 10 个国家和最少的后 10 个国家名单。 问题二: 请比较 2021 不同国家的总人口数,绘制不同国家总人口数的柱状图,并给出总人口最多的前 10 个国家和最少的后 10 个国家名单。 问题三: 请任选三个国家,分别绘制不同龄段人口的直方图,对比分析龄分布的异同点,并结合这三个国家的国情分析不同龄段人口的分布原因。 问题四: 请建立人口预测的数学模型,然后分别预测到 2100 底中国、印度和全球的总人口数,并分析人口的变化趋势。 题目B:电影评分的大数据分析   大数据无处不在,在运营一个成功的商业的过程中,大数据起到的非常重要的作用。同样通过观众对电影的评分的分析,可以在一定程度上给电影行业启发。   网络影评是伴随着电子媒介和数字技术诞生的,呈现出鲜明的数据化倾向,比如电影评分、打星、榜单等。网络评分因其便捷、高效,成为大部分观众评价电影的首选方式,也是电影口碑最直观的体现,评分高低直接影响到大众的观影取向和消费选择。文字、视频相比,大数据搜集、统计的评分信息可以让我们对观众的观影体验,审美趣味、情感态度一目了然。视频网站、电影门户网站等的后台会根据观众的评分、打星和消费行为来推断用户的审美趣味和消费需求,从而为客户提供个性化推荐和引导。   电影的评分更多反映的是大众审美,并非绝对的评判标准,不应该奉为最终裁决,主要功能是用来参考,规避较差电影的同时,发现好的电影,尤其是在规避较差电影方面有着非常显著的效果。   附件 1.电影评分.csv 中包括了豆瓣影评排名前 250 名电影的名称、导演、电影类型、国家、上映份、评分和评论人数。附件 2.电影票房.csv 中包括了 10605 部电影的票房排名、电影名称、上映时间、总票房(元)、平均票价和平均场次,其中,部分数据有缺失和异常。   请你们团队使用附件中的相关数据,进行数据统计分析,回答下列问题: 赛题任务 问题一: 请分析附件 1 中最受欢迎的电影类型是什么?排名前 250 名电影中出现次数最多的导演前 10 名是谁?出现次数最多的国家前 5 名是哪些国家? 问题二: 请分析附件 1 中排名前 250 名电影的上映份主要集中在哪几?排名前 250 名电影的评分评论人数、国家、导演和电影类型是否有关系? 问题三: 请你们收集相关数据,分析附件 2 中电影票房较高的电影主要是什么类型的电影?并给出这些电影的上映时间、总票房(元)、平均票价和平均场次的相关统计图表。 问题四: 某导演拟定于 2024 春节档推出一部电影,请从数据分析的角度给导演一个提案,例如考虑:电影的类型、题材、上映时间、票价等方面。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值