数据集查看器文档
在 Hub 上分析数据集
加入 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")
