数据集查看器文档

在 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 complexity problem from
import java.io.*;\nimport java.math.BigInteger… quadratic 1179_B. Tolik and His Uncle CODEFORCES
import java.util.Scanner;\n \npublic class pil… linear 1197_B. Pillars CODEFORCES
import java.io.BufferedReader;\nimport java.io… linear 1059_C. Sequence Transformation CODEFORCES
import java.util.;\n\nimport java.io.;\npubl… linear 1011_A. Stages CODEFORCES
import java.io.OutputStream;\nimport java.io.I… linear 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 上更新