如何用 Python 转换 Costco 数据?

林骥
林骥
林骥
44
文章
0
评论
2021-08-1317:26:36 评论 762 1836字
摘要

作为数据分析师,也要学习 Costco 死磕自己、为用户创造价值的精神。

 

0. 序言

 

Costco 是全球第一家会员制的仓储批发卖场,中文翻译过来叫「开市客」或「好市多」,始创于 1976 年的美国加州,截止到 2019 年 1 月,有 736 家门店,9270 万会员,年营业额 1310 亿美元,会员续费率 90%,全球拥有 24 万名员工。

 

2019 年 8 月 27 日,中国大陆第一家 Costco 在上海开业,因为人满为患,Costco 实行限流,将卖场人数控制在 2000 人以内,有人早上 4:30 就去排队。

 

Costco 把零售效率做到极致,是零售企业学习的标杆。

 

作为数据分析师,也要学习 Costco 死磕自己、为用户创造价值的精神。

 

下面,我们从网上读取一些 Costco 的股价数据,学习用 Python 对这些数据进行转换,为将来的数据分析做好准备。

 

如何用 Python 转换 Costco 数据?
首先,我们从网页中读取 Costco 的历史股价数据。
 
如何用 Python 转换 Costco 数据?

 

然后,我们对数据进行清洗,得到一个干净整洁的数据表格。

 

如何用 Python 转换 Costco 数据?

 

接下来,我们就可以正式开始对数据进行转换。

 

1. 如何转换为时间?

 

使用 transform() 函数,结合 dateutil 模块中的 parse() 函数,我们可以将字符转换为时间。

 

如何用 Python 转换 Costco 数据?

 

大部分常见的字符形式,都可以使用 parse() 进行转换,例如:

 

如何用 Python 转换 Costco 数据?

 

需要注意的是,要防止出现意外情况,例如:parse("80") 的结果是 1980 年的当前日期,如果这不是你想要的结果,那么在转换之前,建议把相应的字符串写得更具体明确一些。

 

使用 pd.to_datetime() 函数,不仅能将字符转换为时间,而且能将数值转换为时间,还能指定时间单位和起始日期等参数,例如:

 

如何用 Python 转换 Costco 数据?

2. 如何转换为数值?

 

使用 pd.to_numeric() 函数,结合自由度比较高的 apply() 函数,我们可以实现将每一列都强制转换为数值,无法转换的元素用 nan 表示。

 

 

如何用 Python 转换 Costco 数据?

 

其中 errors="coerce" 是 pd.to_numeric() 函数的一个参数,如果把 coerce 替换为 ignore,那么将忽略无法转换的元素,让其保持原样。

 

如何用 Python 转换 Costco 数据?

 

3. 如何转换为字符?

 

使用 astype() 函数,我们可以实现数据类型的相互转换。比如说,下面的代码实现把数据框全部转换为字符型。

 

如何用 Python 转换 Costco 数据?

 

对于时间型的数据,我们可以使用 strftime() 函数,转换为指定的字符格式,例如:

 

如何用 Python 转换 Costco 数据?

 

5. 如何转换为区间?

 

使用 pd.cut() 函数,我们可以将数值切割为指定的区间,例如:

 

如何用 Python 转换 Costco 数据?

 

其中 right = True 代表左开右闭,默认为 False,即左闭右开。

 

我们可以使用 labels 参数,为每个区间指定想要显示的内容,例如:

 

如何用 Python 转换 Costco 数据?

 

如果把 bins 参数定义为一个整数,那么数值将被切割为等分的区间。

 

如何用 Python 转换 Costco 数据?

 

6. 如何做分组转换?

 

结合使用 groupby() 和 transform() 函数,我们可以在行数保持不变的情况下,对某列进行分组求和,例如: 

 

如何用 Python 转换 Costco 数据?

 

这样分组转换数据的好处是,能够方便地计算每个数据对应各自分组的占比。比如说,下面代码的计算结果是:每天成交量占当月总成交量的比例。

 

如何用 Python 转换 Costco 数据?

 

 

如果使用 apply() 函数,那么返回结果会聚合成 5 行。

 

如何用 Python 转换 Costco 数据?

 

如何使用 agg() 函数,那么返回的结果也是聚合成 5 行,而且可以同时应用多个函数。

 

如何用 Python 转换 Costco 数据?

 

Pandas 从  0.25 版本开始,agg() 函数得到增强,可以对多个不同的列,应用不同的函数,并对聚合的结果进行自定义命名。

 

比如说,类似于 Excel 中经典的数据透视表功能,我们可以使用下面的代码,实现按月份分组,同时对日期进行计数、对开盘价求平均值和最大值、对成交量求和。

 

如何用 Python 转换 Costco 数据?

 

可以看出,与 Excel 相比,Python 的功能要强大很多,灵活运用相关函数,能够明显提升数据分析的效率。

 

6. 如何标准化转换?

 

为了消除单位量纲的影响,让不同变量之间能够进行对比分析,我们可以对数据进行标准化转换,0-1 标准化是一种常用的标准化转换的方法。比如说,下面的代码实现了 Costco 开盘价的 0-1 标准化。

 

如何用 Python 转换 Costco 数据?

 

经过 0-1 标准化转换之后,原来的最小值变成 0,原来的最大值变成 1,其他的值都变成了介于 0 到 1 之间的值。

 

7. 小结

 

最后,我们还是用一张思维导图,对转换数据的方法做个小结。

 

如何用 Python 转换 Costco 数据?

End.

爱数据网专栏作者:林骥

作者介绍:数据赋能者,专注数据分析 10 多年。

个人公众号:林骥(linjiwx)

本文为挖数网专栏作者原创文章,未经允许禁止转载,需要转载请微信联系授权(微信号:lovedata0520)

更多文章前往爱数据社区网站首页浏览http://www.itongji.cn/

 

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: