zoukankan      html  css  js  c++  java
  • 如何用 Python 转换 Costco 数据?

     
    Costco 是全球第一家会员制的仓储批发卖场,中文翻译过来叫「开市客」或「好市多」,始创于 1976 年的美国加州,截止到 2019 年 1 月,有 736 家门店,9270 万会员,年营业额 1310 亿美元,会员续费率 90%,全球拥有 24 万名员工。
     
    2019 年 8 月 27 日,中国大陆第一家 Costco 在上海开业,因为人满为患,Costco 实行限流,将卖场人数控制在 2000 人以内,有人早上 4:30 就去排队。
     
    Costco 把零售效率做到极致,是零售企业学习的标杆。
     
    作为数据分析师,也要学习 Costco 死磕自己、为用户创造价值的精神。
     
    下面,我们从网上读取一些 Costco 的股价数据,学习用 Python 对这些数据进行转换,为将来的数据分析做好准备。
     
    首先,我们从网页中读取Costco 的历史股价数据。
     
    然后,我们对数据进行清洗,得到一个干净整洁的数据表格。
     
     
    接下来,我们就可以正式开始对数据进行转换。
     
    1. 如何转换为时间?
     
    使用 transform() 函数,结合 dateutil 模块中的 parse() 函数,我们可以将字符转换为时间。
     
     
    大部分常见的字符形式,都可以使用 parse() 进行转换,例如:
     
     
    需要注意的是,要防止出现意外情况,例如:parse('80') 的结果是 1980 年的当前日期,如果这不是你想要的结果,那么在转换之前,建议把相应的字符串写得更具体明确一些。
     
    使用 pd.to_datetime() 函数,不仅能将字符转换为时间,而且能将数值转换为时间,还能指定时间单位和起始日期等参数,例如:
     
     
    2. 如何转换为数值?
     
    使用 pd.to_numeric() 函数,结合自由度比较高的 apply() 函数,我们可以实现将每一列都强制转换为数值,无法转换的元素用 nan 表示。
     
     
     
    其中 errors='coerce' 是 pd.to_numeric() 函数的一个参数,如果把 coerce 替换为 ignore,那么将忽略无法转换的元素,让其保持原样。
     
     
    3. 如何转换为字符?
     
    使用 astype() 函数,我们可以实现数据类型的相互转换。比如说,下面的代码实现把数据框全部转换为字符型。
     
     
    对于时间型的数据,我们可以使用 strftime() 函数,转换为指定的字符格式,例如:
     
     
    4. 如何转换为区间?
     
    使用 pd.cut() 函数,我们可以将数值切割为指定的区间,例如:
     
     
    其中 right = True 代表左开右闭,默认为 False,即左闭右开。
     
    我们可以使用 labels 参数,为每个区间指定想要显示的内容,例如:
     
     
    如果把 bins 参数定义为一个整数,那么数值将被切割为等分的区间。
     
     
     
     
    5. 如何做分组转换?
     
    结合使用 groupby() 和 transform() 函数,我们可以在行数保持不变的情况下,对某列进行分组求和,例如:
     
     
    这样分组转换数据的好处是,能够方便地计算每个数据对应各自分组的占比。比如说,下面代码的计算结果是:每天成交量占当月总成交量的比例。
     
     
     
    如果使用 apply() 函数,那么返回结果会聚合成 5 行。
     
     
    如何使用 agg() 函数,那么返回的结果也是聚合成 5 行,而且可以同时应用多个函数。
     
     
    Pandas 从 0.25 版本开始,agg() 函数得到增强,可以对多个不同的列,应用不同的函数,并对聚合的结果进行自定义命名。
     
    比如说,类似于 Excel 中经典的数据透视表功能,我们可以使用下面的代码,实现按月份分组,同时对日期进行计数、对开盘价求平均值和最大值、对成交量求和。
     
     
    可以看出,与 Excel 相比,Python 的功能要强大很多,灵活运用相关函数,能够明显提升数据分析的效率。
     
    6. 如何标准化转换?
     
    为了消除单位量纲的影响,让不同变量之间能够进行对比分析,我们可以对数据进行标准化转换,0-1 标准化是一种常用的标准化转换的方法。比如说,下面的代码实现了 Costco 开盘价的 0-1 标准化。
     
     
    经过 0-1 标准化转换之后,原来的最小值变成 0,原来的最大值变成 1,其他的值都变成了介于 0 到 1 之间的值。
     
    7. 小结
     
    最后,我们还是用一张思维导图,对转换数据的方法做个小结。
     
     
  • 相关阅读:
    Round robin
    Linux命令之nslookup
    VLAN
    基础网络概念
    python开发_filecmp
    python开发_stat
    python开发_fileinput
    python开发_os.path
    python开发_bisect
    python开发_copy(浅拷贝|深拷贝)_博主推荐
  • 原文地址:https://www.cnblogs.com/nanhe/p/13279310.html
Copyright © 2011-2022 走看看