读取CSV文件并对某些列进行多数表决

时间:2016-10-17 22:54:29

标签: python-2.7 csv counting

我需要在Python中计算我的CSV文件的TARGET_LABEL列的多数投票。

我有一个带有行ID并分配了TARGET_LABEL的数据框。我需要的是TARGET_LABEL(大多数)的数量。我该怎么做?

例如数据采用以下形式:

 **Row ID        TARGET_LABEL**
      Row2          0
      Row6          0
      Row7          0
      Row10         0
      Row12         0
      Row15         1
       .            . 
       .            .
      Row99999      1

我有python脚本只能从CSV读取数据。这是

import csv

ifile = open('file1.csv', "rb")
reader = csv.reader(ifile)

rownum = 0
for row in reader:
# Save header row.
 if rownum == 0:
    header = row
 else:
     colnum = 0
     for col in row:
         print '%-8s: %s' % (header[colnum], col)
         colnum += 1

  rownum += 1

ifile.close()

2 个答案:

答案 0 :(得分:0)

如果TARGET_LABEL **没有NaN值,您可以使用:

counts = df['TARGET_LABEL'].value_counts()
max_counts = counts.max()

否则,如果它可能包含NaN值,请使用

df = df.dropna(subset=['TARGET_LABEL'])

删除所有NaN值

df['TARGET_LABEL'].value_counts().max() 

应该给你最大数量,

df['TARGET_LABEL'].value_counts().idxmax() 

应该给你最频繁的价值。

答案 1 :(得分:0)

collection包含类Counter,类似于dict(或更确切地说是defaultdict(lambda: 0)),可用于查找最常用的项目