2012-12-03 5 views
1

그래서 난이 CSV 파일을 파일 하나 collumn은 다음과 같습니다 카운트 번호는

1022 
1040 
1042 
1035 
11728 
1036 
1022 
1040 
1042 
1035 
11728 
1036 
1022 
1040 
1042 
1035 
11728 

는 지금은 숫자가 발생하는 방법을 oftend 계산해야합니다. matplotlib로 그래픽 사진을 찍으려면이 사진이 필요합니다. 그래서 그래픽 내가 얼마나 자주 계산 어떻게 ... 숫자

지금까지 내가 해당 행을 인쇄 할 수있는 코드가 (이 상황에서이 이벤트 ID가의) 발생 얼마나

my_reader = csv.reader(open(csvpath)) 
for col in my_reader: 
     print col[3] 

를 표시합니다 그 특정 괄호 안의 숫자가 발생합니까?

+0

는 CSV 또는 참으로'row'처럼 보이지 않는 - *은'homework' 태그가 제거되고 실제 * 데이터 –

+0

이 그것을 사용하지 마십시오 당신의 예입니다. –

+0

@JonClements : OP는 '한 열'을 의미한다고 생각합니다. 이 코드는'row [3]'을 참조합니다. –

답변

3

숫자로 계산하면됩니다. collections.Counter() 클래스는 만드는 가장 쉬운 그하십시오 collections.defaultdict는 옵션입니다 사용

import collections 

counts = collections.Counter() 
for row in my_reader: 
    counts[row[3]] += 1 

:

counts = collections.defaultdict(int) 
for row in my_reader: 
    counts[row[3]] += 1 

또는 당신은이 dict 정상 사용할 수 있습니다

counts = {} 
for row in my_reader: 
    counts[row[3]] = counts.get(row[3], 0) + 1 
+0

'counts = collections.Counter (my_reader의 행은 3 행)'을 의미합니다. –

+0

thnx 나는 당신의 코드 중 하나를 사용했다. 내가 할 필요가있는 유일한 것은 matplotlib와 함께 그래프를 생성 할 수 있도록 출력을 변경하는 것이다. matplotlib은 ("1003", 1)을 취하고 코드의 출력은 '1003': 1입니다. – DT22

+0

@ DT22 :'counts.items()'를 사용하여'(key, count)'의 튜플 시퀀스를 가져옵니다. –

1

당신은 단순히 사전을 사용할 수 있습니다 .

my_reader = csv.reader(open(csvpath)) 
my_dict = {} 
for row in my_reader: 
    try: 
     my_dict[row[3]] += 1 
    except KeyError: 
     my_dict[row[3]] = 0 
1

이 코드는 인쇄 문 앞에 조건이 있는지 확인하는 경우 다음 사용하는 특정 행을 원하는 경우, 행의 총 수를 계산 카운트 == ROW_NUMBER의 엑사됩니다 얻을 총 번호 : 카운트 == 3의 경우.

  reader=csv.reader(open("first.csv")) 
     count=0; 
     for row in reader: 
      count+=1 
      print "total no in row "+str(count)+" is "+str(len(row)) 
      for i in row: 
       print i 
1

당신은 당신의 데이터를 읽을 pandas를 사용하여 값을 계산하고 이상을 플롯 할 수 있습니다. 무대 뒤에서 팬더는 numpymatplotlib을 사용합니다. read_csv 및 플로팅 명령이 여러 열에서도 작동합니다.

In [29]: df = pd.read_csv('data.csv', names=['my_data']) 

In [30]: counts = df['my_data'].value_counts() 

In [31]: counts 
Out[31]: 
1022  3 
1042  3 
1040  3 
1035  3 
11728 3 
1036  2 

In [32]: counts.plot(kind='barh') 
Out[32]: <matplotlib.axes.AxesSubplot at 0x4f7f510> 

value_counts