接着昨天的面试题,今天解决五六七八题:

  • 新建属性列,提取日期中的月份
  • 根据id和月份,做数据透视表;分别求出每个id在不同月份的消费笔数、消费总额
  • 合并信息表和数据透视表;按id合并
  • 数据脱敏,将文本信息匿名化
  1. 首先来解决第五题👉:新建属性列,提取日期中的月份

    接着要提取日期里面的月份,这里有两种方法,看👇方法一,使用DatetimeIndex()方法:

    这样就成功提取了月份的数据出来;这里掌柜翻看pandas的官方文档,里面有对DatetimeIndex()的用法进行解释:

    下面看第二种方法,用split和concat拼接函数,再把只需要的月份列 insert到原始表:

  2. 这样第五题就解决了,接下来是第六题👇:
    根据id和月份,做数据透视表,并分别求出每个id在不同月份的消费笔数、消费总额。




下面是生成数据透视表并统计不同月份的消费总额和次数:

然后掌柜对统计出来的两列数据进行的重命名,更好理解:

这样就得到了题目要求的统计结果,当然,其实不用数据透视表也可以拿到同样的结果。方法二,用groupby和sum、count函数的方法来统计每月不同id的消费总额和消费笔数:

  1. OK,第六题也解决了,然后是第七题👉合并刚刚得到的数据透视表和原始表,并按id合并!
    下面是要合并的两个表格:


    本以为是一个简单的merge就可以搞定,结果发现并不是😂。因为这里数据透视表的索引跟原始表是不一致的,需要先进行一个转换。查阅好多资料后终于在这个问题里面找到解决办法如下👇:

    接着就可以正常合并!
  2. 七题解决后就剩倒数第二题👉 数据脱敏,对文本进行匿名化。 看示例:

    上面解法一就是利用切片属性,再来看解法二:用正则

    (PS:留下最后一题,明天再来解答!🧐)