Datasets库
数据集加载与访问
load_dataset(path, name=None, split=None, **kwargs):加载公开或本地数据集,支持 Hugging Face Hub 地址、本地文件路径及多种数据格式load_from_disk(dataset_path):加载已保存到本地磁盘的Dataset或DatasetDict对象
数据集处理与转换
Dataset.map(function, batched=False,** kwargs):对数据集进行逐样本或批量处理,支持自定义转换逻辑(包括数据添加、数据产出等)Dataset.filter(function, **kwargs):根据条件筛选样本,保留符合条件的记录Dataset.train_test_split(test_size=0.2, shuffle=True):将数据集拆分为训练集和测试集Dataset.select(indices):根据索引列表选择特定样本Dataset.remove_columns(columns):删除数据集中的指定列Dataset.rename_column(old_name, new_name):重命名数据集的列
数据集格式转换与保存
Dataset.save_to_disk(dataset_path):将数据集以二进制格式保存到本地磁盘Dataset.to_pandas():将数据集转换为 Pandas DataFrame 格式DatasetDict.push_to_hub(repo_id):将数据集上传到 Hugging Face Hub 共享
数据集信息与查看
Dataset.info:查看数据集的元信息(描述、许可证、作者等)Dataset.features:查看数据集的特征结构(列名及数据类型)Dataset.shuffle(seed=None):随机打乱数据集顺序
批量处理与迭代
Dataset.iter(batch_size=1, shuffle=False):按指定批次大小迭代数据集Dataset.with_format(format,** kwargs):指定数据集的输出格式(如 torch、tensorflow、numpy)
Pandas库
一、数据加载与保存
pandas.read_csv(filepath_or_buffer, **kwargs):读取 CSV 格式文件,生成 DataFramepandas.read_excel(io, **kwargs):读取 Excel 格式文件(需安装 openpyxl/xlsxwriter 依赖)pandas.read_json(path_or_buf, **kwargs):读取 JSON 格式数据pandas.read_sql(sql, con, **kwargs):从数据库读取数据(需数据库连接对象 con)DataFrame.to_csv(path_or_buf, **kwargs):将 DataFrame 保存为 CSV 文件DataFrame.to_excel(excel_writer, **kwargs):将 DataFrame 保存为 Excel 文件DataFrame.to_json(path_or_buf, **kwargs):将 DataFrame 保存为 JSON 格式DataFrame.to_sql(name, con, **kwargs):将 DataFrame 写入数据库表
二、数据查看与基础信息获取
DataFrame.head(n=5):查看 DataFrame 前 n 行数据(默认 5 行)DataFrame.tail(n=5):查看 DataFrame 后 n 行数据(默认 5 行)DataFrame.info(verbose=None, show_counts=None):查看数据类型、非空值数量等基础信息DataFrame.describe(percentiles=None, include=None, exclude=None):查看数值型数据的统计信息(均值、标准差、分位数等)DataFrame.shape:返回 DataFrame 的行数和列数(格式:(行数,列数))DataFrame.columns:查看 DataFrame 的所有列名DataFrame.index:查看 DataFrame 的行索引DataFrame.dtypes:查看每列的数据类型DataFrame.isnull().sum():统计每列的缺失值数量
三、数据清洗
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False):删除包含缺失值的行或列DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None):填充缺失值(支持固定值、均值、中位数、前向 / 后向填充)DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False):删除重复行DataFrame.replace(to_replace=None, value=None, inplace=False, regex=False):替换数据中的特定值(支持单值、字典、正则匹配)DataFrame.astype(dtype, copy=True, errors='raise'):转换列的数据类型DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwargs):对行或列应用自定义函数进行数据处理DataFrame.map(func, na_action=None):对 Series(单列)应用映射函数DataFrame.str.strip(to_strip=None):去除字符串列的前后空白字符(需调用 str 属性)DataFrame.str.lower()/DataFrame.str.upper():将字符串列转换为小写 / 大写(需调用 str 属性)DataFrame.interpolate(method='linear', axis=0, limit=None, inplace=False):通过插值法填充缺失值(适合时序数据)
四、数据选择与筛选
DataFrame[col_name]:按列名选择单个列(返回 Series)DataFrame[[col1, col2, ...]]:按列名列表选择多个列(返回 DataFrame)DataFrame.loc[row_indexer, col_indexer]:按行标签和列标签选择数据(支持切片、条件筛选)DataFrame.iloc[row_indexer, col_indexer]:按行索引和列索引(整数位置)选择数据DataFrame.query(expr, inplace=False, **kwargs):通过字符串表达式筛选行(如 "age > 30 and gender == 'male'")DataFrame[condition]:通过布尔条件筛选行(condition 为与 DataFrame 行数一致的布尔数组)DataFrame.filter(items=None, like=None, regex=None, axis=None):按列名的关键词匹配 / 正则匹配选择列
五、数据排序与排名
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, ignore_index=False):按指定列的值排序(支持多列排序)DataFrame.sort_index(axis=0, ascending=True, inplace=False, ignore_index=False):按行索引排序DataFrame.rank(axis=0, method='average', numeric_only=None, na_option='keep', ascending=True, pct=False):对数值型数据进行排名(支持平均排名、稠密排名等方式)
六、数据聚合与分组
DataFrame.groupby(by, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, dropna=True):按指定列或条件分组,返回 GroupBy 对象GroupBy.agg(func, axis=0, *args, **kwargs):对分组后的数据应用聚合函数(如 sum、mean、count,支持多函数)GroupBy.sum(numeric_only=None):计算分组内数值型数据的总和GroupBy.mean(numeric_only=None):计算分组内数值型数据的均值GroupBy.count():统计分组内非空值的数量GroupBy.max(numeric_only=None)/GroupBy.min(numeric_only=None):计算分组内数值型数据的最大值 / 最小值GroupBy.first()/GroupBy.last():获取分组内的第一行 / 最后一行数据DataFrame.pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False, sort=True):创建透视表,实现多维度数据聚合
七、数据合并与连接
pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None):按指定键合并两个 DataFrame(支持内连接、外连接、左连接、右连接)DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False):按索引合并两个 DataFrame(默认左连接)pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True):拼接多个 DataFrame 或 Series(支持纵向拼接、横向拼接)DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False):在 DataFrame 末尾追加另一个 DataFrame 或 Series(已过时,推荐用 concat)
八、数据重塑与转换
DataFrame.pivot(index=None, columns=None, values=None):将长格式数据转换为宽格式(需确保索引和列的组合唯一)DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True):将宽格式数据转换为长格式DataFrame.stack(level=-1, dropna=True):将列索引转换为行索引(数据堆叠,宽表转长表)DataFrame.unstack(level=-1, fill_value=None):将行索引转换为列索引(数据解堆叠,长表转宽表)DataFrame.transpose(copy=True)/DataFrame.T:交换 DataFrame 的行和列(转置)DataFrame.explode(column, ignore_index=False):将包含列表的列展开为多行(每行对应列表中的一个元素)
九、时间序列数据处理
pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True):将字符串或数值转换为 datetime 类型DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False):将 datetime 列设为行索引,构建时序索引DataFrame.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffset=None, base=0, on=None, level=None, origin='start_day', offset=None):按指定时间频率重采样(如按日、按月、按小时,支持聚合计算)DataFrame.shift(periods=1, freq=None, axis=0, fill_value=None):将时序数据按指定步长平移(用于计算差分、滞后值)DataFrame.rolling(window, min_periods=1, center=False, win_type=None, on=None, axis=0, closed=None, method='single'):创建滚动窗口对象,支持滚动均值、滚动标准差等计算DataFrame.expanding(min_periods=1, center=False, axis=0, method='single'):创建扩展窗口对象,计算从起始到当前的累积统计量
Dataloader库
一、核心数据加载类
torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None, generator=None, prefetch_factor=2, persistent_workers=False, pin_memory_device=''):核心数据加载器,将数据集按批次加载,支持多进程加速、随机打乱、自定义批处理逻辑等,是训练 / 推理时数据输入模型的关键入口。torch.utils.data.Dataset:数据集抽象基类,自定义数据集需继承此类并实现__getitem__(按索引获取单样本)和__len__(返回数据集总样本数)方法,为 DataLoader 提供数据来源。
二、数据集拆分与采样类
torch.utils.data.TensorDataset(*tensors):用于包装张量数据的数据集类,将多个张量按第一维度对齐,支持通过索引获取对应位置的张量组合(如输入特征张量与标签张量)。torch.utils.data.ConcatDataset(datasets):将多个数据集(需同类型)拼接为一个整体数据集,方便统一加载多来源数据。torch.utils.data.Subset(dataset, indices):从指定数据集中按索引列表提取子集,常用于手动划分训练集 / 验证集(如基于train_test_split结果创建子集)。torch.utils.data.random_split(dataset, lengths, generator=None):按指定长度比例随机拆分数据集为多个子集(如按 [0.8, 0.2] 拆分训练集与验证集),内部通过Subset实现。torch.utils.data.Sampler(data_source):采样器抽象基类,定义数据集的索引采样逻辑,为 DataLoader 提供 "按何种顺序读取样本" 的规则。torch.utils.data.RandomSampler(data_source, replacement=False, num_samples=None, generator=None):随机采样器,打乱样本索引顺序,实现 DataLoader 的shuffle=True功能(默认采样器)。torch.utils.data.SequentialSampler(data_source):顺序采样器,按数据集原始索引顺序采样,对应 DataLoader 的shuffle=False场景。torch.utils.data.SubsetRandomSampler(indices):子集随机采样器,仅从指定索引列表中随机采样,适合固定子集的随机加载(如验证集随机打乱)。torch.utils.data.BatchSampler(sampler, batch_size, drop_last):批采样器,将基础采样器(如 RandomSampler)生成的单个索引打包为批次索引,控制每批样本的组成。
三、数据批处理与辅助函数
torch.utils.data.default_collate(batch):DataLoader 默认的批处理函数,将批次内的单样本(如张量、列表、字典)拼接为批量张量(如单样本张量→批量张量,字典值对应拼接),支持自动类型转换与维度对齐。torch.utils.data.collate_fn(自定义):自定义批处理函数,用于处理默认default_collate无法适配的样本格式(如变长序列、非张量数据),需接收 "样本列表" 并返回 "批量数据"。torch.utils.data.get_worker_info():在多进程加载(num_workers>0)时,获取当前工作进程的信息(如进程 ID、总进程数、数据集分片),用于实现进程级的数据预处理(如分片加载数据,避免重复处理)。torch.utils.data.worker_init_fn(worker_id):多进程加载时的工作进程初始化函数,可在每个子进程启动时执行自定义逻辑(如设置随机种子、加载进程专属资源),避免多进程间随机状态一致导致的数据重复。
四、数据加载优化相关
pin_memory=True(DataLoader 参数):启用内存固定,将加载的批量张量存入 GPU 可直接访问的锁定内存,减少数据从 CPU 到 GPU 的传输延迟,提升训练效率(需配合 GPU 训练使用)。persistent_workers=False(DataLoader 参数):控制多进程加载的工作进程是否持久化,设为True时,训练 / 推理过程中工作进程不关闭,避免反复创建 / 销毁进程的开销,适合长期运行的任务。prefetch_factor=2(DataLoader 参数):预加载因子,控制每个工作进程提前加载的批次数(如prefetch_factor=2表示每个进程提前准备 2 批数据),平衡数据加载与模型计算的速度,避免模型等待数据。