当前位置: 首页 > news >正文

数据处理常用函数

Datasets库

  1. 数据集加载与访问

    • load_dataset(path, name=None, split=None, **kwargs):加载公开或本地数据集,支持 Hugging Face Hub 地址、本地文件路径及多种数据格式
    • load_from_disk(dataset_path):加载已保存到本地磁盘的DatasetDatasetDict对象
  2. 数据集处理与转换

    • 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):重命名数据集的列
  3. 数据集格式转换与保存

    • Dataset.save_to_disk(dataset_path):将数据集以二进制格式保存到本地磁盘
    • Dataset.to_pandas():将数据集转换为 Pandas DataFrame 格式
    • DatasetDict.push_to_hub(repo_id):将数据集上传到 Hugging Face Hub 共享
  4. 数据集信息与查看

    • Dataset.info:查看数据集的元信息(描述、许可证、作者等)
    • Dataset.features:查看数据集的特征结构(列名及数据类型)
    • Dataset.shuffle(seed=None):随机打乱数据集顺序
  5. 批量处理与迭代

    • Dataset.iter(batch_size=1, shuffle=False):按指定批次大小迭代数据集
    • Dataset.with_format(format,** kwargs):指定数据集的输出格式(如 torch、tensorflow、numpy)

Pandas库

一、数据加载与保存

  • pandas.read_csv(filepath_or_buffer, **kwargs):读取 CSV 格式文件,生成 DataFrame
  • pandas.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 批数据),平衡数据加载与模型计算的速度,避免模型等待数据。

http://www.dtcms.com/a/477358.html

相关文章:

  • RISC-V 架构适配:开源 AI 工具链的跨平台编译优化全流程(附实战指南)
  • 湛江做网站从为什么用html5做网站
  • jsp网站怎么做的好看创艺装饰12万的全包房
  • HashMap实现原理(高频)
  • 道格拉斯-普克算法(Douglas-Peucker Algorithm)的详细原理介绍
  • Linux (CentOS 7.9) vmware 创建与安装
  • Linux下的阻塞与非阻塞模式详解
  • 计算机网络基础篇——物理层
  • 【开题答辩全过程】以 标本销售管理系统为例,包含答辩的问题和答案
  • 中国 TOB 信息安全市场增长洞察报告(2020-2024):细分领域表现与战略机遇
  • SSM(Spring+SpringMVC+Mybatis)整合
  • 网站排名推广汕头发展
  • 【Linux】初始线程
  • WSL SSH 服务器一站式配置教程
  • 网站建设企业资质等级做游戏模板下载网站有哪些
  • C++ bit级别的复制
  • 《算法闯关指南:优选算法--二分查找》--17.二分查找(附二分查找算法简介),18. 在排序数组中查找元素的第一个和最后一个位置
  • 浏览器原理之详解渲染进程!
  • JSON衍生:JSON5、JSONL、JSONC、NDJSON、BSON、JSONB、JSONP、HOCON
  • 【Java Xml】dom4j写入XML
  • F024 vue+flask电影知识图谱推荐系统vue+neo4j +python实现
  • C++设计模式_结构型模式_外观模式Facade
  • 第 7 篇:交互的乐趣 - 响应用户输入
  • 解决Chrome 140以上版本“此扩展程序不再受支持,因此已停用”问题 axure插件安装问题
  • 如何在火语言中指定启动 Chrome 特定用户配置文件
  • 轻松测试二维码生成与识别:使用Python的qrcode、opencv和pyzbar库
  • 清河做网站报价大背景 网站
  • 迅捷视频转换器 v18.4.23 图文安装教程|支持MP4、AVI、MKV等多格式视频转换
  • 【AI论文】通过渐进式一致性蒸馏实现高效的多模态大语言模型
  • 怎么查看网站开发人网站建设流程及相应技术