2017-12-21 4 views
-3

私はこれらの2行から始まる無地CSVファイル有する:合計でカウント数が

1. Clubhouse,Fibre Ready,Fitness Corner,Aircon,Security,Maid Room,Gym,Tennis Court,Fridge,Bathtub,Swimming Pool,Utility Room,Squash Court,Playground,Oven,Parking,Washer,Pool View,Wading Pool,BBQ Pits,Balcony,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, 
2. Clubhouse,Aircon,Greenery View,Fridge,Jacuzzi,Swimming Pool,Dryer,Steam Room,Playground,Fitness Corner,Washer,Gym,Balcony,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, 
3. ... 
And so on 

を、私は(家を表す)75の列を有し、各列と62458行を有する(表し75種類の家具が各家にあります。私はこれらの数字を数えればわかりやすいので、実際にはこれらのコンマの間には何もないので、75種類の家具がいっぱいある家はありません。私は、各列がcsvファイルに何回現われるかを数えるプログラムを書くためにpythonを使います。私はいくつかの方法を試したが、うまくいかなかった。

私の出力は次のようにする必要があります:

Clubhouse: .... times 
Fibre Ready: .... times 

P/S:ファイルが読めないので、私は、データベースにファイルをインポートすることはできません

答えて

2

あなたが使用することができcollections.Counter

from collections import Counter 
import csv 

counter = Counter() 
with open('furniture.csv') as fobj: 
    reader = csv.reader(fobj) 
    for row in reader: 
     counter.update(row) 

for k, v in counter.items(): 
    print('{}: {} times'.format(k, v)) 

あなたの2行分の出力:

Clubhouse: 2 times 
Fibre Ready: 1 times 
Fitness Corner: 2 times 
Aircon: 2 times 
... 
また、1つのアイテムにアクセスすることができます

::

>>> counter['Clubhouse'] 
2 
>>> counter['Fibre Ready'] 
1 

collections.Counterは、タスクのこのタイプのために有用である:ハッシュ可能アイテムをカウントする

Dictのサブクラス。時にはバッグ またはマルチセットと呼ばれることもあります。要素は辞書キーとして保存され、その数は辞書値として に格納されます。