-4

pandas を使用して、テキスト型のデータの数を取得し、指定されたデータの上位 5 つを見つけています。

入力ファイルは次のとおりです。

Gears of war 3
Gears of war
Assassin creed
.......
.......
Crysis 2
Gears of war3
Sims

私の出力は次のとおりです。

{
    'Gears of War 3': 6,
    'Batman': 5,
    'gears of war 3': 4,
    'Rocksmith': 5,
    'nan': 32870
}

コードで csv ファイルの nan 値のカウントをスキップしたい。

私のコードは次のとおりです。

data = pandas.read_csv('D:\my_file.csv')

for colname, dtype in data.dtypes.to_dict().iteritems():
    if dtype == 'object':
        print colname
        count = Counter(data[colname])
        d = dict((str(k), v) for k, v in count.iteritems())
        f = dict(sorted(d.iteritems(), key=lambda item: item[1], reverse = True)[:5])
4

2 に答える 2

1

nan辞書のようなオブジェクトである Counter インスタンスからアイテムを削除するだけです:

from numpy import nan
del count[nan]

ところで、Counter.most_commonメソッドを使用できます:

f = count.most_common(5)
于 2012-10-23T10:58:53.573 に答える
0

非値value_counts()をカウントするために使用します。Nan

        one       two     three
a  0.196508 -0.465768 -0.710062
b       NaN       NaN       NaN
c  0.532602  1.835499  0.465047
d       NaN       NaN       NaN
e  0.175336 -0.471934 -1.517812
f -2.392756 -0.021330 -0.239647
g       NaN       NaN       NaN
h -0.612554  0.238613 -1.060184

df2['one'].value_counts()

 0.532602    1
 0.196508    1
 0.175336    1
-0.612554    1
-2.392756    1
于 2012-10-23T11:04:15.520 に答える