【发布时间】:2013-04-22 04:11:38
【问题描述】:
假设我有一个具有以下数据格式的 csv 文件:
ID, Name, Gender, Q1
1, ABC, Male, "A1;A2"
2, ACB, Male, "A2;A3;A4"
3, BAC, Female, "A1"
我想将其转换为以下格式,以便我的数据虚拟化工具可以正确处理它:
ID, Name, Gender, Questions, Responses
1, ABC, Male, Q1, A1
1, ABC, Male, Q1, A2
2, ACB, Male, Q1, A2
2, ACB, Male, Q1, A3
2, ACB, Male, Q1, A4
3, BAC, Female, Q1, A1
使用 LibreOffice 中的 Text to Columns 功能,我可以轻松地将 Q1 列 A1;A2 分成不同的列,例如 A1, A2,但我被困在转置和重复行上。
附加信息:
数据是通过谷歌表单收集的,不幸的是谷歌电子表格使用分号分隔符将多项选择题的答案存储在一个单元格中,例如
A1;A2;A3...,而我的可视化工具看不到这个底层数据结构,只能将它们视为一个单一的字符串,使聚合/分组变得困难。在实际数据(调查结果)中,我有大约 5000 个条目,每个条目都有多个需要此类处理的单元格,这将产生一个包含大约 100,000 个条目的表。需要一种自动化转换的方法。
我用来分析/可视化数据的工具是“Tableau Public”,他们有一个半自动化的 Excel 数据整形插件 such tasks(参见 Make确保每一行只包含一条数据),但没有 LibreOffice 替代方案。
【问题讨论】:
-
我也有同样的需求,对于 Tableau 也是如此。我真的很惊讶没有标准工具可以在这两种格式之间来回转换:crosstab/wide normalized/long
标签: csv google-sheets google-docs libreoffice tableau-api