2016-10-24 1 views
-2

私はCSVファイルを読み込んで、列全体の単語数を与える他のpython単語カウンタを見てきました。私は "プロジェクト"と "サブプロジェクト"レベル(私のデータの他の列)でそれを好きであることを除いて、行ごとの単語の数を見たいと思います。こうすることで、サブプロジェクトのワード数が特定の単語のワード数よりも多いかどうかを確認できます。最終的な列は、Project、Sub-Project、Word、Word Count(サブプロジェクトごと、合計ではありません)です。私は助けていただければ幸いです!Pythonではどのようにして異なるレベルのaggreagtesという頻度の単語カウンタを生成できますか?

入力:

列 - プロジェクト/サブプロジェクト/コーパス

1のProject1 /サブ/赤い車が

の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}) 
関連する問題