Pandas数据分析实战04

该博客通过Pandas库分析`population_data.json`文件,统计阿富汗、阿尔巴尼亚、阿拉伯世界、阿鲁巴和孟加拉国这五个国家在2010年的人口占比情况。使用两种方法获取数据并计算占比,最后利用matplotlib绘制了各国人口占比的饼图。
摘要由CSDN通过智能技术生成

Pandas数据分析实战04

任务目标

统计以下5个国家2010年人口的占比情况:
country_list = [“Afghanistan”,“Albania”,“Arab World”,“Aruba”,“Bangladesh”]

数据准备

population_data.json
链接:https://pan.baidu.com/s/1Ipd-SMhIvp2tATseO1rOYA
提取码:3c3b

代码展示

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False

# 设定文件名称
file_name = "population_data.json"

# 设定文件路径
file_path = "D:\\Coding\\Python\\LogicCoding\\Data Analyze\\"

# 用pandas读取及合并json文件
df_population = pd.read_json(file_path + file_name)

df_population

在这里插入图片描述

df_population.info()

在这里插入图片描述

# 统计以下5个国家2010年人口的占比情况
country_list = ["Afghanistan","Albania","Arab World","Aruba","Bangladesh"]

# 依次统计各国2010年的人口占比情况
# 方法一,使用布尔索引筛选国家和筛选年份,最后将对应的值添加到列表中
country_population = []
for country in country_list:
    df_pop = df_population[(df_population["Country Name"] == country) & (df_population["Year"] == 2010)]
    df_pop = df_pop.reset_index()
    country_population.append(df_pop.loc[0, "Value"].astype(float))
country_population

在这里插入图片描述

# 方法二,用loc()方法实现快速定位
country_population = []
for country in country_list:
    df_pop = df_population.loc[(df_population["Country Name"] == country) & (df_population["Year"] == 2010)]
    df_pop = df_pop.reset_index()
    country_population.append(df_pop.iloc[0, 4].astype(float))
country_population

在这里插入图片描述

# 绘制饼图
def draw_pie():
    plt.pie(country_population
            ,labels = country_list  # 各个部分的名字(标签)
            ,labeldistance = 1.1  # 标签到中心点的距离
            ,autopct = '%.1f%%'  # 控制比例的值的显示
            ,pctdistance = 0.5  # 控制百分比的值的显示位置
            ,explode = [0,0,0.1,0,0]  # 每一份扇形 到中心点的距离
            ,colors = ['yellow' ,'blue', 'red', 'orange', 'green']
            ,shadow = True
            ,startangle = 90  # 绘制图形时候 开始的角度
            )
    plt.title("各国2010年人口的占比情况")
    plt.legend(loc='lower right')
    plt.show()
draw_pie()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清弦墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值