数据集查看器文档

分析 Hub 上的数据集

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

分析 Hub 上的数据集

在快速入门中,您了解了用于与 Hub 上的数据集交互的各种端点。其中最有用的端点之一是 /parquet 端点,它允许您获取 Hub 上存储的数据集并对其进行分析。这是探索数据集并更好地了解其内容的好方法。

为了演示,本指南将向您展示一个端到端示例,说明如何从 Hub 检索数据集并使用 Pandas 库进行一些基本数据分析。

获取数据集

Hub 拥有超过 200,000 个数据集,涵盖各种任务、大小和语言。在这个例子中,您将使用 codeparrot/codecomplex 数据集,但欢迎您探索并找到其他您感兴趣的数据集!该数据集包含来自编程竞赛的 Java 代码,并且代码的时间复杂度由一组算法专家进行标记。

假设您对提交代码的平均长度与时间复杂度的关系感兴趣。以下是您如何开始。

使用 /parquet 端点将数据集转换为 Parquet 文件并返回其 URL

Python
JavaScript
cURL
import requests
API_URL = "https://datasets-server.huggingface.co/parquet?dataset=codeparrot/codecomplex"
def query():
    response = requests.get(API_URL)
    return response.json()
data = query()
{"parquet_files": 
    [
        {"dataset": "codeparrot/codecomplex", "config": "default", "split": "train", "url": "https://huggingface.co/datasets/codeparrot/codecomplex/resolve/refs%2Fconvert%2Fparquet/default/train/0000.parquet", "filename": "0000.parquet", "size": 4115908}
    ], 
 "pending": [], "failed": [], "partial": false
}

用 Pandas 读取数据集

有了 URL,您可以将 Parquet 文件读取到 Pandas DataFrame 中

import pandas as pd

url = "https://huggingface.co/datasets/codeparrot/codecomplex/resolve/refs%2Fconvert%2Fparquet/default/train/0000.parquet"
df = pd.read_parquet(url)
df.head(5)
src 复杂度 问题 来自
import java.io.*;\nimport java.math.BigInteger… 二次 1179_B. Tolik and His Uncle CODEFORCES
import java.util.Scanner;\n \npublic class pil… 线性 1197_B. Pillars CODEFORCES
import java.io.BufferedReader;\nimport java.io… 线性 1059_C. Sequence Transformation CODEFORCES
import java.util.;\n\nimport java.io.;\npubl… 线性 1011_A. Stages CODEFORCES
import java.io.OutputStream;\nimport java.io.I… 线性 1190_C. Tokitsukaze and Duel CODEFORCES

按时间复杂度计算平均代码长度

Pandas 是一个强大的数据分析库;按时间复杂度对数据集进行分组,应用函数计算代码片段的平均长度,并绘制结果

df.groupby('complexity')['src'].apply(lambda x: x.str.len().mean()).sort_values(ascending=False).plot.barh(color="orange")
< > 在 GitHub 上更新