在前面我们已经获取到了一万九千多位用户的个人信息,以及他们所贡献的八十多万首歌曲(参考:全民K歌数据分析之数据的获取)。这些数据是存储在mongodb数据库中,对于这些数据的清洗,数量不大,完全可以用excel来实现,因此在数据清洗着一步,我就用python和excel来实现了。
数据的导出
我们首先需要将mongodb中的数据导入CSV文件中,用python就是一瞬间的事。
将数据写入csv导入的数据如下所示,整体上看还算整齐,这都是在数据获取阶段就把数据做的一定的清洗之后的带来的便利,但是依然有一部分数据需要清洗优化。首先第一个就是性别这一栏我们为了统计的方便,我们可以将性别数据化,1代表boy,2代表girl;第二个就是地址栏,这一栏有两个数据,一个是省,另外一个是市,这个就不符合单元化的原则,我们需要将省和市拆开。第三个就是级别这一栏,为了方便统计,我们需要将级别数据化,一共26个等级,我们还是用1-26来表示这些等级。除此之外,为了方便数据的分析,我们将csv文件转换为xls表格形式。
excel数据的清洗
我们先对数据进行简单的整理,去除空值,设置单元格格式,创建表之后就获得如下的表。
接下来,我们进行数据的清洗规范化:
性别 省市地域我们用一个if函数来搞定性别,将其进行选择性粘贴,转换成数值;然后对省和市进行非列,分列之后有部分三个字的省会别拆开,用替换功能,进行逐一替换即可。
对于级别的清洗,我们这里为了避免if函数多层嵌套的麻烦,我们直接用数据的有效性验证,然后用vlookup()函数来进行。
我们首先做一个数据有效性验证的表:
数据的有效性验证 查找 最终数据截止目前,我们对用户数据的清洗过程就算完成了。
网友评论