首页 > 解决方案 > 如何使用熊猫计算数据框中的类标签频率?

问题描述

我有一个像这样的数据框,使用熊猫的数据框计算特定类的类标签频率的简单方法是什么。

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

这段代码很慢,在大文件上

标签: pythonpandasdataframe

解决方案


尝试使用value_counts。这是 Pandas 计算频率计数的一种有用方法。

一样简单index.value_counts()


推荐阅读