2016-10-24 5 views
-2

CSV 파일을 읽고 전체 열의 단어 수를 제공하는 다른 파이썬 단어 카운터를 보았습니다. 나는 "프로젝트"와 "서브 프로젝트"레벨 (내 데이터의 다른 컬럼)에서 그것을 원한다는 것을 제외하고 행당 한 단어의 수를보고 싶습니다. 이 방법을 사용하면 특정 단어에 대해 하위 프로젝트의 단어 수가 다른 단어보다 많은지 확인할 수 있습니다. 마지막 열은 프로젝트, 하위 프로젝트, 단어, 단어 수 (하위 프로젝트별로, 전체가 아님)로 지정하고 싶습니다. 나는 어떤 도움을 주셔서 감사합니다!파이썬에서는 어떻게 다른 레벨로 aggreagtes하는 빈도 단어 카운터를 생성 할 수 있습니까?

는 입력 :

열 - 프로젝트/하위 프로젝트/코퍼스

에서 Project1/하위 1/빨간 자동차가 최고의 자동차에게

Project1의 인/2 서브/파란색은 더

수출 문서 읽어야합니다

열 - 프로젝트/하위 프로젝트/워드/주파수

Project1의/SUB1 /는/2

에서 Project1/Sub2라는 /는/1

+2

현재이 문제를 해결하기 위해 작성한 코드를 공유하시기 바랍니다, 그리고 그 중 어떤 부분에 도움이 필요하십니까? –

답변

0

이 프로그램은 당신이 원하는 것을 할 수 있습니다

import csv 
from collections import Counter 

with open('in.csv') as in_file: 
    in_file = csv.DictReader(in_file) 

    with open('out.csv', 'w') as out_file: 
     out_file = csv.DictWriter(
      out_file, 
      ['Project', 'Sub-Project', 'Word', 'Frequency']) 
     out_file.writeheader() 

     for line in in_file: 
      words = Counter(map(str.lower, line['Corpus'].split())) 

      for word, freq in words.most_common(): 
       out_file.writerow({ 
        'Project': line['Project'], 
        'Sub-Project': line['Sub-project'], 
        'Word': word, 
        'Frequency': freq})