2016-10-17 8 views
-1

私のCSVファイルのTARGET_LABEL列に対する多数決をPythonで計算する必要があります。CSVファイルを読み、特定の列の多数決を取る

私はRow IDを持つデータフレームを持っており、TARGET_LABELが割り当てられています。私が必要とするのは、TARGET_LABEL(多数)のカウントです。これはどうすればいいですか?例のデータについては

がこの形態である:

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

私はCSVからデータを読み込み、Pythonスクリプトを持っています。それはNaN値が含まれている可能性がありそうでない場合は、

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

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

削除しを使用します。ここではそれは** NaN値を持っていない、あなたが使用できる場合TARGET_LABELで

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() 

答えて

0

ですすべてのNaN値

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

は最大カウントを提供する必要があります。

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

は、最も頻繁に値を指定する必要があります。

+0

dfとは何ですか?これは機能ですか?私は多くのPythonを知らない。 – Probe

+0

dfはデータフレームを表します。 –

0

パッケージcollectiondict(またはより正確にdefaultdict(lambda: 0))と同様に動作し、最も頻度の高いアイテムを見つけるために使用することができるクラスCounterを含有します。

関連する問題