我的数据遵循这种模式:
ID Name1 Name2 Name3 Name4 .....
41242 MCJ5X TUAW OXVM4 Kcmev 1
93532 AVEV2 WCRB3 LPAQ 2 DVL2
.
.
.
截至目前,这只是电子表格中的格式,大约有6000行。我需要做的是为Name1之后的每个Name创建一个新行,并将其与当前行的ID相关联。例如,见下文:
ID Name1
41242 MCJ5X
41242 TUAW
41242 OXVM4
41242 Kcmev 1
93532 AVEV2
93532 WCRB3
93532 LPAQ 2
93532 DVL2
我有什么想法可以做到这一点?我觉得这不应该太复杂,但不能确定最佳方法。无论是脚本还是某些功能,我都非常感谢您的帮助。
答案 0 :(得分:0)
如果可能,您可能需要使用csv文件。这些文件是纯文本,大多数电子表格程序可以打开/修改它们(我知道Excel和OpenOffice版本可以)。如果你采用这种方法,你的算法将如下所示:
read everything into a string array
create a 1 to many data structure (maybe a Dictionary<string, List<string>> or list of (string, string) tuple types)
loop over each line of the file
splice the current line on the ','s and loop over those
if this is the first splice, add a new item to the 1 to many data structure with the current splice as the Id
otherwise, add this splice to the "many" (name) part of the last item in the data structure
create a new csv file or open the old one for writing
output the "ID, Name1" row
loop over each 1-many item in the data collection
loop over the many items in the current 1-many item
output the 1 (id) + "," + current many item (current name)
您可以使用几乎任何语言执行此操作。如果它是一次性使用脚本,那么Python,Ruby或Powershell(取决于平台)可能是一个不错的选择。