作者:乐多体育 | 发表于:2022-11-21 | 阅读:92次

我在前面的文章中提到过,在数据分析中,我们所要处理的表格都是结构化的数据表格(Structured table)什么是结构化?用大白话说就是数据表格(table)的第一行是各个列的名字,而剩下的所有行都是数值,如下图所示

而下图是非结构化数据表格的例子。

在数据分析中所要处理的表格都是如第一个图中所展示的结构化的数据表格,且SQL语句所要处理的表格的格式也都是结构化的。在实际工作中也确实会遇到数据源是非结构化的,且非结构化的数据格式也多种多样。这就需要在存入数据库前把非结构化的数据转变成结构化的,方法因实际工作情况而定。

今天来分享一个从非结构化表格用Excel转换成结构化表格的例子。我们用NBA数据来做例子,如果要分析球员在比赛中的表现,我们需要把数据统计放到一个表格中来,一般情况下我们没有途径获得每场比赛的原始统计数据的,但赛后统计数据都会放到官网上,如下图。

但在选中数据复制到Excel的时候会发现结构是这样的:

这种数据的格式就不是一个结构化的数据表格,或者说这个表格的格式我们无法存入数据库中,比如行与行之间的空格;且有些数值不是我们想要的,比如‘undefined’;姓名这一列中球员的姓和名没有放到一个数值中等等。我们需要把这个表格转换成格式化的。我的方法是:

第一步:去掉‘undefined’,首先选中姓名这一列,然后Ctrl H,这个功能是把表格中的一些数值用另一个数值来替换。在这个例子中,在Replace with那用空白来代替‘undefined’,然后点Replace All。

这样就可以把不想要的数值去掉。

第二步:把球员的姓名放到一个数值中来。这一步我用的方法是在“姓名”和“位置”中间插入两列,在D2中输入公式“=C3”然后下拉,如下面的GIF图所示:

在E2中输入公式“=CONCAT(C2,"-",D2)”,如下GIF图:

这样就得到了一个新的姓名一列,在这一列中我们看到有些球员的名字就比较正常了。

第三步:取消中间空格的部分。这一步我用的方法就是选中G列,然后用点击Data中的filter,把blank去掉就可以,如下面GIF图:

然后我们再把从姓名列到最后的这些数据复制粘贴到一个新的worksheet里就可以了,再改一下列名(column name),比如把“%”改成命中率,把“ /-“改成”正负值“,这样就能得到一个格式化的数据表格,如下图所示:

如上图所示就是一个结构化的数据表格,这样格式的表格我们就可以录入到数据库系统中从而可以进行下一步的分析了。

当然,在实际工作中,非结构化的数据可以说是多种多样的,今天只是举一个简单的例子用Excel把一个非结构化的数据转换成结构化的。我个人认为Excel在这方面可以说是非常强大的,因为在操作上更加的灵活多变,如上面的这一系列流程甚至可以用Excel的Macro记录下来,下回只需要把数据复制粘贴过来,就可以自动生成一个结构化的数据表格了。希望今天的分享能帮到大家。

图自网络,侵删。

特别声明:所有资讯或言论仅代表发布者个人意见,乐多体育仅提供发布平台,信息内容请自行判断。

标签: 结构化 表格 实例

相关资讯