数据分析学习笔记(Python vs SQL vs Excel)

最近在做数据分析的工作,从数据采集到SQL清洗,再到用Pandas和Excel进行分析。
总体来说,数据的清洗占了绝大部分时间,下面归纳一下碰到的问题。

1.数据库数据导出的问题。(SQL/Hive)
2.当没有唯一标识序列时,如何关联两张表的问题。(SQL/Excel/Python)
3.对于ID-path,如何转换为中文路径的问题。(Python/Excel)
4.多个层级,如何确认最低层级的问题。(Excel/Python)

1.数据库数据导出问题
第一个问题,数据库数据导出的问题。在具体业务场景下,往往需要将特定的数据表导出,给业务分析人员/客户使用,或者分析数据表,做一些特征工程的工作,支持后续的建模分析。
不管数据库里存储的是何种类型,varchar也好,text也罢,只要是长数字串(搜索说是超过11位的数字),在导出时就会自动转化为科学计数法,导致数据丢失。这是挺大一个坑了,比如一串984224421111,很有可能导出来之后变成了984200000000。
解决方式:使用CONCAT()函数,导出时将数字转化为字符串,在字段前或后拼接上"\t",如字段为ids,导出用CONCAT(ids,"\t")

2.无唯一标识列关联问题
当我们想要将两个数据库的两个表相关联时,往往我们会碰到无唯一标识列的问题。因为在一个数据库里,表之间可以通过主外键等关系关联,但两个库的两个表,设计时就不可能是有关联的。但在做数据整合、数据中台时往往会遇到这个难题。
一般来说,有两种解决方式,当然前提条件也不同。
场景一:表一和表二中有同义字段为唯一非空值。
解决方案:以该非空唯一的同义字段做关联,两表外连接。此时如果两表数据差距较多,会出现很多空字段。
场景二:表一和表二存在一些同义字段,但多多少少是非唯一的。
最佳解决方案:1. 遍历判断这些同义字段中,哪些字段的重复项最少。
2. 将含有该重复字段的记录导出,单独处理,或通过业务口径确定。
3. 非重复字段进行关联。

3.ID-path转化为中文路径
这是Python爬虫里经常会碰到的问题,当然这里有多种解决方式。
(1)Python处理:爬虫过程中发现树形结构,爬下来是parent-id串。这种情况比较简单,找到id所对应的name,最好是形成一张id-name字典表,然后将parent-id串根据分隔符做split,每串id到字典表里去查,最后再join成一个字符串。
(2)Excel处理:对批量结构化列进行分割,直接使用分列功能,结合VLOOKUP()函数轻松搞定。

4.多路径确定指定级别的最低路径。
Python:将指定级别放置列表中,遍历每条路径,直至达到该路径,完毕。
Excel:VLOOKUP()函数结合LOOKUP()函数。

posted @ 2021-06-15 16:23  YHJIN  阅读(237)  评论(0编辑  收藏  举报