将分隔的字符串/单元格值拆分为多行

时间:2012-10-19 13:02:25

标签: python csv import-from-csv

我可以通过多种方式解决这个问题,但我想使用Python。这是一个问题:

我有一个CSV文件,其中包含如下值:

Name         Address                 Skills

Napoleon     Preston, Idaho          Bowhunting, Computer Hacking, Drawing Unicorns

我想将其转换为:

Name         Address                 Skill 
Napoleon     Preston, Idaho          Bowhunting
Napoleon     Preston, Idaho          Computer Hacking
Napoleon     Preston, Idaho          Drawing Unicorns

我已经研究过了,我已经阅读了CSV库,但我觉得我最终会做一些非常丑陋和过于复杂的事情。

1 个答案:

答案 0 :(得分:4)

现在你有一个平面文件,我相信操纵你的数据的第一步是将它加载到python中,以便你可以开始使用它。

你走在正确的轨道上。 csv模块是为此设计的

假设您的数据是标签分隔

import csv

with open('your_csv.csv') as f:
  f.readline() # these are headings should remove them
  csv_reader = csv.reader(f, delimiter='\t')
  for line_list in csv_reader:
     # line_list is a list of each row of your csv       
     # line_list[0] Contains 'Name' data   'Napolean'
     # line_list[1] Cotinas Address 'Preston, Idaho'
     # line_list[2] Contains skills 'Bowhunting, Computer Hacking, Drawing Unicorns'
     skills_list = [x.strip() for x in line_list[2].split(',')]
     for skill in skills_list:
        #line_list[0]   line_list[1],   skill


        Napoleon     Preston, Idaho          Bowhunting
        Napoleon     Preston, Idaho          Computer Hacking
        Napoleon     Preston, Idaho          Drawing Unicorns