[英]python - how to count number of numbers from columns?
我有一個包含以下輸入數據的文件:
IN OUT
data1 2.3 1.3
data2 0.1 2.1
data3 1.5 2.8
dataX ... ...
有成千上萬個這樣的文件,每個文件都有相同的data1,data2,data3,...,dataX。我想對所有文件中每個數據和列的每個值的數量進行計數。 例:
在文件“ data1-IN”(文件名)中
2.3 - 50 (times)
0.1 - 233 (times)
... - ... (times)
在文件“ data1-OUT”(文件名)中
2.1 - 1024 (times)
2.8 - 120 (times)
... - ... (times)
在文件“ data2-IN”(文件名)中
0.4 - 312 (times)
0.3 - 202 (times)
... - ... (times)
在文件“ data2-OUT”(文件名)中
1.1 - 124 (times)
3.8 - 451 (times)
... - ... (times)
在文件'data3-IN'中...
哪種Python數據結構最適合計算此類數據? 我想使用多維字典,但是我在KeyErrors等方面苦苦掙扎。
您確實想使用collections.Counter
,也許包含在collections.defaultdict
:
import collections
import csv
counts = collections.defaultdict(collections.Counter)
for filename in files:
for line in csv.reader(open(filename, 'rb')):
counts[filename + '-IN' ][line[1]] += 1
counts[filename + '-OUT'][line[2]] += 1
我最近開始使用Pandas數據框。 它具有CSV閱讀器,使切片和切塊數據非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.