我正在Kaggle.com上研究一些数据集,试图学习ETL的更好实践,因为我倾向于在转换部分上停留在特定的事情上。对于这个问题,我正在处理Stack Overflow 2018的调查结果:https://www.kaggle.com/stackoverflow/stack-overflow-2018-developer-survey-特别是LanguageWorkedWith列。
目前,我正在使用RapidMiner / Excel的组合来尝试更改数据。我对R和Python代码不太熟悉,无法使用编码方法解决此问题。
当前列的问题在于它列出了用户选择的所有语言,并用分号分隔。我可以轻松地在分号上拆分一列,但是发生的事情有两种:
我有31列LanguageWorkedWith1-LanguageWorkedWith31。这使得按薪水收集语言计数无效。
笛卡尔效应,其中每行将被复制以仅容纳语言选择。因此,您将有很多重复的行,这肯定会影响数据的完整性。我还尝试了使用Power BI(加载位置)来删除响应者ID和语言上的重复项,但这没有用。
理想情况下,我想在Power BI中通过薪水可视化来编写语言,这与有多少个内核一样,但是却无法弄清楚使这种情况在代码外部发生的过程。不知道这看起来会如何,但是如果我可以拆分所有语言并计算它们,我至少可以做这样的事情: 但是我不确定是否可以将其与薪水以及数据的方式联系起来。
我只是想更好地理解一些转换过程!感谢任何帮助!
答案 0 :(得分:1)
关键是要拆分成行而不是列。
这样您就可以得到一个像这样的表:
您可以将该行扩展保留在数据模型中自己的相关表中,这样就不会创建巨型表。
从那里开始,只要您了解一点DAX,就可以轻松制作视觉效果。例如,我创建了AvgSalary
度量(在将该列转换为数字类型之后),如下所示:
AvgSalary =
CALCULATE (
AVERAGE ( survey_results_public[ConvertedSalary] ),
FILTER (
survey_results_public,
survey_results_public[Respondent] IN VALUES ( 'Language'[Respondent] )
)
)
然后可以创建如下有趣的图表: