2017-05-21 22 views
0

私はcsvファイルに3つの列を持っていて、 "タイトル"の列に行き、特定の単語の出現回数を数えたいので、エラー。pycharmを使用してcsvで特定の単語の出現を数えてください

import csv 
import collections 

Title = collections.Counter() 
with open('Green Occupations.csv') as input_file: 
    for row in csv.reader(input_file, delimiter=';'): 
     Title[row[1]] += 1 

print 'Number of word "..": %s' % Tiltle['wind'] 
print Title.most_common() 

と私はこのエラーを取得:コードがある

Title[row[1]] += 1 
IndexError: list index out of range 

私は

+------------+---------------------------------+-------------------------+ 
| SOC Code |    Title    | Occupational Category | 
+------------+---------------------------------+-------------------------+ 
| 11-1011.03 | Chief Sustainability Officers | New & Emerging   | 
| 11-1021.00 | General and Operations Managers | Enhanced Skills   | 
+------------+---------------------------------+-------------------------+ 

任意のアイデアを持っているデータの例? :)

+1

CSVファイルの例あなたがそれにアクセスする前に、行の長さをチェックすることをお勧めします – abccd

+0

してください。 'if len(row)<2:continue'を返します。 –

+0

タイトルの例raw:風力エネルギープロジェクトマネージャー 最初の列にはコード番号#があり、3番目の列には次のようなテキストがあります:New green –

答えて

0

def get_count(title): 
    count=0 
    title=title.lower() 
    f=open('Green Occupations.csv') 
    l3=[[s.strip() for s in lines.split(',')] for lines in f.readlines()] 
    l4=[item[x] for item in l3] 
    for item in l4: 
     if item.split(' ')[0].strip('"').lower()==title: 
      count+=1 
    return count 
print(get_count('Industrial')) 

assumigタイトル列xにし、リスト内包の上に次のコードを試してみてください、タイトル

のリストを与えると3列目のあなたのタイトルは3

によってxを交換した場合
occurence=get_count(title=) 
# will return no of occurence starting with title 
+0

私はこれをどこに追加すればいいのですか?私はそれを試しても、私はまだエラーが表示されます:TypeError: 'builtin_function_or_method'オブジェクトは反復可能ではありません –

+0

'builtin_function_or_method'エラーは、f.readlinesメソッドのかっこが足りなくなったために発生します。 –

+0

申し訳ありませんが、まだXの部分を取得していません。私はこれを初心者で、自分で学びたいと思っています –

0

パンダを使用できますか? それは非常に簡単な仕事になるだろう:

import pandas as pd 

#Import data from csv 
df = pd.read_csv(input_file, delimiter=';') 

search_word = 'Officer' #example 

# Check if each title contains the specified word and then count 
counts = df['Title'].str.contains(search_word).sum() 
関連する問題