用numpy进行数据分析练习

原始数据
在这里插入图片描述

from itertools import islice
import numpy as np

def read_file():
    content=[]
    # 跳过前面没用的3行数据
    with open('G://国际数据主要国家(地区)年度数据.csv', 'r') as f:
        # 跳过后面两行没用的数据
        lines=len(f.readlines())-2
        # 将文件指针指到开始位置
        f.seek(0)
        for line in islice(f, 3, lines):
            content.append(line.split('\n')[0].split(','))
    return content

def split_content(content):
    year='2012年'
    # 用来存放国家
    country=[]
    # 将列表变成矩阵
    data=np.array(content)
    # 获取索引
    index=np.argwhere(data == year)[0][0]
    # 获取2012年数据
    data_2012 = data[index][:][1:]
    # 将空白字符替换为零
    data_2012=np.where(data_2012=='',0,data_2012)
    # 将数据转换成整型
    data_2012 = data_2012.astype(np.int64)
    # 筛选2012年排名前十的人口数量
    count = np.sort(data_2012)[::-1][:10].astype(np.str)
    # 找到对应的国家
    for it in count:
        i= np.where(data==it)[1][0]
        country.append(data[0][i])
    return zip(country,count)

def for_each(data):
    # 遍历
    for item in data:
        print("2012年{0}人口数量:{1}".format(item[0],item[1]))

if __name__ == '__main__':
    data=split_content(read_file())
    for_each(data)

在这里插入图片描述

from itertools import islice
import numpy as np

def read_file():
    content = []
    # 跳过前面没用的3行数据
    with open('G://国际数据主要国家(地区)年度数据.csv', 'r') as f:
        lines = len(f.readlines()) - 2
        f.seek(0)
        for line in islice(f, 3, lines):
            content.append(line.split('\n')[0].split(','))
    return content


def split_content(content):
    sum=[]
    avg=[]
    years =['2011年','2012年','2013年']
    countries = ['印度', '柬埔寨', '阿富汗']
    data = np.array(content)
    index1 = np.argwhere(data == years[0])[0][0]+1
    index2 = np.argwhere(data == years[2])[0][0]
    country1 = np.argwhere(data == countries[0])[0][1]
    country2 = np.argwhere(data == countries[1])[0][1]
    country3 = np.argwhere(data == countries[2])[0][1]
    sum.append(data[index2:index1,country1].astype(np.int64).sum())
    avg.append(data[index2:index1,country1].astype(np.int64).mean())
    sum.append(data[index2:index1,country2].astype(np.int64).sum())
    avg.append(data[index2:index1,country2].astype(np.int64).mean())
    sum.append(data[index2:index1,country3].astype(np.int64).sum())
    avg.append(data[index2:index1,country3].astype(np.int64).mean())
    return zip(countries,sum,avg)

def for_each(data):
    for item in data:
        print("2011~2013{0}总人口:{1},平均人口:{2}".format(item[0],item[1],item[2]))


if __name__ == '__main__':
    data = split_content(read_file())
    for_each(data)

在这里插入图片描述

from itertools import islice
import numpy as np


def read_file():
    content=[]
    # 跳过前面没用的3行数据
    with open('G://国际数据主要国家(地区)年度数据.csv', 'r') as f:
        # 跳过后面两行没用的数据
        lines=len(f.readlines())-2
        # 将文件指针指到开始位置
        f.seek(0)
        for line in islice(f, 3, lines):
            content.append(line.split('\n')[0].split(','))
    return content


def split_content(content):
    # 将列表矩阵化
    data = np.array(content)
    # 获取除第一行第一列以外的数据
    ret_data = data[1:, 1:]
    # 用零替代空白字符
    ret_data = np.where(ret_data == '', 0, ret_data)
    # 将字符型转化成整形
    result = ret_data.astype(np.int64).mean(axis=0)
    return zip(data[0, 1:], result)

# 遍历
def Average(data):
    for item in data:
        print(item[0], "历史平均人口为:", item[1])


if __name__ == '__main__':
    data = split_content(read_file())
    Average(data)

在这里插入图片描述

from itertools import islice
import numpy as np

def read_file():
    content=[]
    # 跳过前面没用的3行数据
    with open('G://国际数据主要国家(地区)年度数据.csv', 'r') as f:
        # 跳过后面两行没用的数据
        lines=len(f.readlines())-2
        # 将文件指针指到开始位置
        f.seek(0)
        for line in islice(f, 3, lines):
            content.append(line.split('\n')[0].split(','))
    return content

def split_content(content):
    year='2012年'
    # 将列表矩阵化
    data=np.array(content)
    # 获取索引的位置
    index=np.argwhere(data == year)[0][0]
    # 获取2012年数据
    ret_data = data[index][:][1:]
    # 将数据转成整形
    ret_data=np.where(ret_data=='',0,ret_data)
    # 获取平均值
    avg = ret_data.astype(np.int64).mean()
    # 求和
    sum = ret_data.astype(np.int64).sum()
    print('2012年亚洲总人口:{0},平均人口:{1}'.format(sum,avg))

if __name__ == '__main__':
    data=split_content(read_file())

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据分析练习是指通过使用Python编程语言来处理和分析数据的实践活动。这些练习旨在让学习者掌握如何使用Python数据分析库来处理和分析实际的数据集。 在Python数据分析练习中,学习者首先需要了解如何读取和导入数据集。Python有很多库可以用于读取和处理各种格式的数据,例如CSV、Excel、JSON等。学习者需要学习如何使用这些库来加载和处理自己感兴趣的数据。 然后,学习者需要学习如何清洗和预处理数据。数据通常存在一些缺失值、异常值和重复值,需要使用Python库来清洗和处理这些问题。此外,学习者还需要了解如何对数据进行规范化和标准化,以便于后续的分析工作。 接下来,学习者可以学习如何使用Python进行数据分析和可视化。Python有很多数据分析库,例如Pandas、NumPy和Matplotlib等。学习者需要学习如何使用这些库来计算统计指标、绘制图表和进行数据挖掘。学习者可以使用这些库来回答自己感兴趣的问题,例如数据的趋势、相关性和模式等。 最后,学习者需要学习如何进行数据报告和沟通。数据分析不仅仅是处理数据,还需要将结果以清晰和易懂的方式传达给其他人。学习者可以使用Python的文档编写和可视化库来创建数据报告和可视化演示,以向他人展示分析结果。 总之,Python数据分析练习是通过使用Python编程语言来处理和分析数据的实践活动。学习者需要学习如何读取和导入数据、清洗和预处理数据、使用数据分析和可视化库进行数据分析,以及进行数据报告和沟通。这些练习可以帮助学习者掌握Python数据分析的技能,为实际问题提供解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值