python - 如何使用熊猫计算数据框中的类标签频率?
问题描述
我有一个像这样的数据框,使用熊猫的数据框计算特定类的类标签频率的简单方法是什么。
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 - 当工作表有多个可能的名称时,如何将多个 Excel 工作表读入 python
- javascript - 如何在 PrimeNG 的下拉输入字段中显示来自 api 的一些值
- python - 测量将整数附加到大型列表字典的效率
- scala - 从 df 中删除 n+1 行
- sql - Pivot 不适用于聚合 clob 列
- powerbi - 当用户使用 AD 帐户从 Power BI 服务门户登录时,我们如何在雪花数据库中获取用户名
- java - 如何创建创建 PKCS12 密钥库?
- c# - 将新行添加到 RadGridView - WPF 时如何防止 RowValidating 事件
- python - 运行 pyinstaller 应用程序时无法启动循环
- java - 重新启动 Java 应用程序时重用 Selenium WebDriver 会话