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

  • 新建属性列,提取日期中的月份
  • 根据id和月份,做数据透视表;分别求出每个id在不同月份的消费笔数、消费总额
  • 合并信息表和数据透视表;按id合并
  • 数据脱敏,将文本信息匿名化
  1. 首先来解决第五题????:新建属性列,提取日期中的月份
    数据分析面试、笔试题汇总+解析(三)
    接着要提取日期里面的月份,这里有两种方法,看????方法一,使用DatetimeIndex()方法:
    数据分析面试、笔试题汇总+解析(三)
    这样就成功提取了月份的数据出来;这里掌柜翻看pandas的官方文档,里面有对DatetimeIndex()的用法进行解释:
    数据分析面试、笔试题汇总+解析(三)
    下面看第二种方法,用split和concat拼接函数,再把只需要的月份列 insert到原始表:
    数据分析面试、笔试题汇总+解析(三)
    数据分析面试、笔试题汇总+解析(三)
  2. 这样第五题就解决了,接下来是第六题????:
    根据id和月份,做数据透视表,并分别求出每个id在不同月份的消费笔数、消费总额。

数据分析面试、笔试题汇总+解析(三)
数据分析面试、笔试题汇总+解析(三)
数据分析面试、笔试题汇总+解析(三)
下面是生成数据透视表并统计不同月份的消费总额和次数:
数据分析面试、笔试题汇总+解析(三)
然后掌柜对统计出来的两列数据进行的重命名,更好理解:
数据分析面试、笔试题汇总+解析(三)
这样就得到了题目要求的统计结果,当然,其实不用数据透视表也可以拿到同样的结果。方法二,用groupby和sum、count函数的方法来统计每月不同id的消费总额和消费笔数:
数据分析面试、笔试题汇总+解析(三)
数据分析面试、笔试题汇总+解析(三)

  1. OK,第六题也解决了,然后是第七题????合并刚刚得到的数据透视表和原始表,并按id合并!
    下面是要合并的两个表格:
    数据分析面试、笔试题汇总+解析(三)
    数据分析面试、笔试题汇总+解析(三)
    本以为是一个简单的merge就可以搞定,结果发现并不是????。因为这里数据透视表的索引跟原始表是不一致的,需要先进行一个转换。查阅好多资料后终于在这个问题里面找到解决办法如下????:
    数据分析面试、笔试题汇总+解析(三)
    接着就可以正常合并!
    数据分析面试、笔试题汇总+解析(三)
  2. 七题解决后就剩倒数第二题???? 数据脱敏,对文本进行匿名化。 看示例:
    数据分析面试、笔试题汇总+解析(三)
    上面解法一就是利用切片属性,再来看解法二:用正则
    数据分析面试、笔试题汇总+解析(三)
    (PS:留下最后一题,明天再来解答!????)

相关文章: