Как посчитать частоту метки класса в кадре данных с помощью панд? - PullRequest
1 голос
/ 22 октября 2019

У меня есть такой фрейм данных, который является простым методом для подсчета частоты меток классов определенного класса, используя фрейм данных панды.

index  f1 f2 f3 f4 f5 f6  class_label
    0      4  4  2  3  3  1        0
    1      1  4  2  1  3  1        0
    2      4  1  2  1  3  1        0
    3      2  4  1  3  3  1        1
    4      4  4  2  0  3  1        1
    5      3  4  2  4  1  1        1
    6      4  4  2  5  3  1        1
    7      4  4  2  3  3  1        1

Я записал этот код, но есть ли простой способ сделать это:

import pandas  as pd

df  = pd.read_csv('example.tsv',sep='\t')
class_labels  = df['class_label'].values.tolist()
class_labels_set = set(class_labels)

print class_labels

freq_list = []

for c in class_labels_set:
    freq_list.append(class_labels.count(c))

print 'Freq',freq_list
print 'number',class_labels_set

Этот код очень медленный, для больших файлов

1 Ответ

0 голосов
/ 23 октября 2019

Я думаю, у меня была похожая проблема. Вы хотите знать, сколько строк в вашем наборе данных с переменной class_label == 1 (или любым числом) - правильно ли я понимаю?

Если это так, то я использовал аналогично

df[df.class_label==x]

, чтобы получить подмассив только тех строк, которые соответствуют этому требованию, и просто

len(df[df.class_label==x])

, чтобы получить количество событий, которые удовлетворяют указанному вами условию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...