小白学 Python 数据分析(7):Pandas 数据分组

引言

各位同学好呀,我又出来了,本篇文章我们介绍下 Pandas 的数据分组。

本文用的数据集再次做更换,有同学在后台问小编为什么最近每篇文章都在换数据集。

emmmmmmmm,在小白刚入门的时候,很多同学找不到数据集练手,小编尽量多使用一些数据集,传到代码仓库后,大家 Down 下来直接就能使用,给大家多提供几个案例做选择。

AkShare

本次的数据集选择由 AkShare 提供的本次疫情的历史数据。

AkShare 的简介:

AkShare 是基于 Python 的开源金融数据接口库, 目的是实现对股票, 期货, 期权, 基金, 外汇, 债券, 指数, 数字货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集, 数据清洗, 到数据落地的一套开源工具, 满足金融数据科学家, 数据科学爱好者在金融数据获取方面的需求。

AkShare 的特点是获取的是相对权威的金融数据网站公布的原始数据, 广大数据科学家可以利用原始数据进行各数据源之间的交叉验证, 进而再加工, 从而得出科学的结论。

好像和疫情没什么关系么,其实 AkShare 也是在最近的更新中添加了有关本次疫情的数据集。

首先第一件事儿就是先把我们今天要使用到的数据集搞下来,首先是 AkShare 的安装,参考文档示例进行安装( https://akshare.readthedocs.io/zh_CN/latest/akshare/ak-installation.html ):

  • 通用安装:
    pip install akshare --upgrade

  • 国内安装-Python:
    pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --upgrade

  • 国内安装-Anaconda:
    pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --user --upgrade

除了一些 Python 的库需要进行安装,还有一些其他环境需要安装,小编这里就不一一列出了,请各位同学参考文档进行安装。

安装好以后,将本次疫情的历史数据进行导出成 Excel ,然后开始我们今天的正题,这段导出代码其实非常简单,加上导包总共三行,如下:

import akshare as ak

epidemic_dxy_df = ak.epidemic_dxy(indicator="global")
epidemic_dxy_df.to_excel('epidemic_dxy.xlsx')

这里获取的其实是本次疫情截止小编写这篇文章时的一个最新数据。

说明: epidemic_dxy_df 是一个 DataFrame ,这里直接通过 DataFrame 的 to_excel 进行 Excel 导出。

如果不想使用 Excel 的同学,也可以直接操作 epidemic_dxy_df 这个 DataFrame ,只是每次运行的时候它都要从远端拉取数据,速度上挺慢的,从本地的 Excel 中读取数据还是会快很多。

导出的 Excel 小编就简单截个图,如图:

可以看到,总共有 66 行的数据,数据量不大,我们进行操作后,可以人工核实操作数据是否正确。

数据分组

如果有对 SQL 使用经验的同学来讲,分组这个词并不陌生,在 SQL 中的关键字是 group by ,而在 Pandas 中的方法名也十分相似,是 groupby() 。
当然,如果对 SQL 不熟悉的同学也可以参考下 Excel 的分组,都是一样的。
我们先按照七大洲对这个数据做一次分组,看下是什么结果:

import pandas as pd

# 数据导入
epidemic_dxy = pd.read_excel("epidemic_dxy.xlsx")

print(epidemic_dxy.groupby(['continents']))

# 输出内容
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000019AB24BAB48>

可以看到,这里输出的了一个 DataFrameGroupBy 的内存对象,实际上这个对象中包含了分组后的一些相关信息,并没有直接显示出来,我们直接调用一个汇总的方法看一下:

print(epidemic_dxy.groupby(['continents']).count())

# 输出内容
            id  createTime  modifyTime  ...  operator  locationId  countryShortCode
continents                              ...                                        
亚洲          26          26          26  ...        26          26                26
其他           1           1           1  ...         1           1                 1
北美洲          4           4           4  ...         4           4                 4
南美洲          2           2           2  ...         2           2                 2
大洋洲          2           2           2  ...         2           2                 2
欧洲          <
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值