2013-08-23 4 views
-1

У меня есть файл с 2 столбцами («IdNo», «skillList») в файле csv. когда я прочитал файл. Он считывает весь файл в виде строки. IdNo имеет serialNumber, а у SkillList есть список определенных пользователем навыков. Поэтому я хочу узнать частоту использования навыков.подготовка данных в читаемом формате на python

Но моя проблема заключается в том, как получить данные в доступной форме. Мои данные выглядят примерно так.

>>> a1 

'IdNo, skillsList\nBAXA0000206_NEENA_TIWARI_0.htm,"[u\'Training\', u\'E-Learning\', u\'PowerPoint\', u\'Teaching\', u\'Accounting\', u\'Team Management\', u\'Team Building\', u\'Microsoft Excel\', u\'Microsoft Office\', u\'Financial Accounting\', u\'Microsoft Word\', u\'Customer Service\']"\nBAXA0000227_ABDUR_RAZZAQUE_0.htm,"[u\'Telecommunications\', u\'Data Center\', u\'ISO 27001\', u\'Management\', u\'BS25999\', u\'Technology\', u\'Information Technology...\', u\'Certified PMP\\xae\', u\'Certified BS25999 Lead...\']"\nBAXA0000261_Priya _ Lobo_0.htm,"[u\'Market Research\', u\'Segmentation\', u\'Marketing Strategy\', u\'Consumer Behavior\', u\'Experience Working with...\']" 

Нужна помощь. Thanks

+0

Прочитайте его Csv пакет предоставляемых Python. Или используйте Pandas reader. – sashkello

+0

Альтернативно смотрите в функцию «split». Который разделит вашу строку запятой и поместит в список. – sashkello

+0

http://docs.python.org/2/library/csv.html или http://pandas.pydata.org/pandas-docs/dev/io.html – sashkello

ответ

0

Это моя общая процедура обработки данных в виде строки. Возможно, это не подходит для вашей ситуации (где у вашей строки много символов), но взглянуть не повредит, не так ли?

split() функция разбивает строку в список строк, например:

>>> a1 = 'id1, skill1\nid2, skill2\nid3, skill3' 
>>> a2 = a1.split('\n') 
>>> a2 
>>> ['id1, skill1', 'id2, skill2', 'id3, skill3'] 

В этом случае a2 показывает список строк. Сделайте шаг вперед, чтобы отделить две колонки:

>>> a3 = [row.split(', ') for row in a2] 
>>> a3 
>>> [['id1', 'skill1'], ['id2', 'skill2'], ['id3', 'skill3']] 
>>> for row in a3: 
...  for col in row: 
...    print col, 
...  print '' 
... 
id1 skill1 
id2 skill2 
id3 skill3 

Чтобы получить доступ ко всем элементам в каждом столбце, используйте функцию zip():

>>> a4 = zip(*a3) 
>>> a4 
>>> [('id1', 'id2', 'id3'), ('skill1', 'skill2', 'skill3')] 
>>> for col in a4: 
...  for row in col: 
...    print row, 
...  print '' 
... 
id1 id2 id3 
skill1 skill2 skill3 
Смежные вопросы