2013-08-23 5 views
-1

CSV 파일에 2 개의 열 ("IdNo", "skillsList")이있는 파일이 있습니다. 내가 파일을 읽을 때. 전체 파일을 문자열로 읽습니다. IdNo에는 serialNumber가 있으며 skillsList에는 사용자가 지정한 기술 목록이 있습니다. 그래서 기술의 빈도를 알아 내고 싶습니다.파이썬에서 읽을 수있는 형식으로 데이터 준비

하지만 내 문제는 데이터를 액세스 가능한 형식으로 가져 오는 방법입니다. 내 데이터는 다음과 같습니다.

>>> 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...\']" 

도움이 필요합니다. 감사합니다.

+0

파이썬에서 제공하는 CSV 패키지를 읽어보십시오. 또는 팬더 리더를 사용하십시오. – sashkello

+0

또는 '분할'기능을 살펴보십시오. 쉼표로 문자열을 분할하여 목록에 넣습니다. – 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 
관련 문제