python - 如何使用 Pandas 计算数据框中的类标签频率?

标签 python pandas dataframe

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

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

此代码在大文件上非常慢

最佳答案

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

就像 index.value_counts() 一样简单。

关于python - 如何使用 Pandas 计算数据框中的类标签频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58512113/

相关文章:

python - bool 注释导致重复?

python - 不规则时间序列上的 Pandas 滑动/滚动窗口

python - 为了良好的风格,我应该在 Python 中在方法之前定义内部类,反之亦然吗?

python - 如何加速 LabelEncoder 将分类变量重新编码为整数

python - Pandas - 你可以在跳过行的同时有条件地回填另一列吗?

python - 根据条件删除 pandas DataFrame 中的重复行

python - 在线版scikit-learn的TfidfVectorizer

python - 如何动态地将参数传递给方差分析测试?

python - 根据模式搜索重命名多列

python-3.x - 如何按照我要求的方式取消旋转或堆叠 pandas 数据框?