面向数据科学家的 23 个出色 Pandas 代码

2025年1月7日 | 阅读 6 分钟

数据科学家是利用科学技术、策略、算法和系统从结构化和非结构化数据中提取理解和见解的专业人士。他们整合了数据、计算机技术和领域专业知识等多个学科的技能,来分析和解释复杂的数据集。

角色和职责

  • 数据收集和清洗:从不同来源收集数据,并确保其干净、准确且可用。
  • 数据分析:使用统计和机器学习技术来分析数据并识别模式或趋势。
  • 模型构建:使用机器学习算法开发预测模型,以预测未来趋势或行为。
  • 可视化:创建可视化图表,以易于理解的方式与利益相关者沟通发现。
  • 报告:在报告、仪表板和演示中汇总和呈现结果。
  • 解决问题:运用数据驱动的策略来解决业务问题。
  • 协作:与跨职能团队(包括业务分析师、IT 和产品经理)合作,以实施数据驱动的解决方案。

数据科学家在真实生活中的经验

  • 科技公司:数据科学家分析用户数据以改进产品并优化营销策略。
  • 金融和银行:他们从事欺诈检测、风险管理、算法交易和客户细分等工作。
  • 医疗保健:数据科学家关注预测分析、个性化药物、医学影像分析和药物发现。
  • 零售和电子商务:他们分析客户行为,构建推荐系统,管理库存,并优化定价。
  • 电信:数据科学家优化网络,预测客户流失,并改善客户服务。
  • 交通和物流:他们从事路线优化、需求预测、车队管理和供应链绩效等工作。
  • 营销和广告:数据科学家分析营销活动效果,进行客户细分,并优化广告支出。
  • 能源和公用事业:他们从事预测性维护、能源消耗预测和资源分配。
  • 政府和公共部门:数据科学家分析政策,进行公共卫生分析,并支持智慧城市项目。
  • 教育:他们改善学生学习体验,开发课程,并进行教育研究。
  • 制造业:数据科学家专注于质量控制、生产优化、预测性维护和供应链管理。
  • 体育和娱乐:他们分析运动员表现,吸引观众,推荐内容,并优化游戏设计。
  • 保险:数据科学家调查风险,检测欺诈,进行客户细分,并定制保险计划。
  • 环境科学和农业:他们从事天气建模、精准农业和可持续发展工作。
  • 咨询公司:数据科学家为各行业的不同客户提供数据驱动的解决方案和策略。

基础 Pandas 代码

导入 Pandas

导入 Pandas 库是使用 DataFrame 和 Series 等数据结构的第一步。

语法

参数

  • `pandas`: 要导入的库。
  • `as pd`: 在代码中引用 Pandas 的别名。

创建 DataFrame

从列表字典或其他数据结构创建 DataFrame。

语法

参数

  • `data`: 要转换为 DataFrame 的字典、列表或其他数据结构。
  • `columns`: (可选) 列名列表。

读取 CSV 文件

将数据从 CSV 文件读取到 DataFrame 中。

语法

参数

  • `filepath`: CSV 文件的路径。
  • `sep`: (可选) 要使用的分隔符。默认为 ','。
  • `header`: (可选) 要用作列名的行范围。
  • `names`: (可选) 要使用的列名列表。

将 DataFrame 写入 CSV 文件

将 DataFrame 写入 CSV 文件以保存数据。

语法

参数

  • `path_or_buf`: 要写入 CSV 文件的文件路径或对象。
  • `sep`: (可选) 要使用的分隔符。默认为 ','。
  • `index`: (可选) 写入行名(索引)。默认为 True。

显示前几行

显示 DataFrame 的前几行可以快速分析数据。

语法

参数

  • `n`: (可选) 要返回的行数。默认为 5。

显示最后几行

显示 DataFrame 的最后几行以检查数据末尾。

语法

参数

  • `n`: (可选) 要返回的行数。默认为 5。

显示 DataFrame 的形状

获取 DataFrame 的形状(行数和列数)。

语法

获取列名

检索 DataFrame 的列名。

语法

生成基本统计摘要

获取 DataFrame 的统计摘要,包括计数、平均值、标准差、最小值、25%、50%、75% 和最大值。

语法

检查空值

识别 DataFrame 中的缺失值。

语法

高级 Pandas 代码

处理缺失数据

用列的均值填充缺失值有助于保持整体数据分布。

语法

参数

  • `df['column']`: 需要填充缺失值的列。
  • `df['column'].mean()`: 计算列的均值。
  • `inplace=True`: 就地修改 DataFrame。

将函数应用于每个元素

将函数应用于列中的每个元素可以有效地转换数据。

语法

参数

  • `df['column']`: 将应用函数的列。
  • `function`: 要应用于每个元素的函数。

分组和聚合

对数据进行分组和聚合对于汇总和解释大型数据集至关重要。

语法

参数

  • `df.groupby('column')`: 按所需列对 DataFrame 进行分组。
  • `agg('column': 'function')`: 对列应用聚合函数。

数据透视表

数据透视表使用多级索引对行和列进行数据汇总。

语法

参数

  • `values='column'`: 要聚合的列。
  • `index='column'`: 要设置为索引的列。
  • `columns='column'`: 要透视的列。
  • `aggfunc='function'`: 聚合函数。

融化 DataFrame

融化将宽格式数据转换为长格式,使其更容易处理。

语法

参数

  • `id_vars=['id_vars']`: 要保留为标识符变量的列。
  • `value_vars=['value_vars']`: 要取消透视的列。

从列表字典创建 DataFrame

当数据已经组织在 Python 字典中时,此方法很有用。

语法

参数

  • `dict_of_lists`: 字典,其中键是列名,值是列值的列表。

转换数据类型

转换数据类型可以优化内存使用,并确保分析的正确数据类型。

语法

参数

  • `df['column']`: 要转换的列。
  • `astype('type')`: 指定要转换的数据类型。

使用不同连接类型合并 DataFrame

合并根据通用列合并 DataFrame,并提供不同的连接选项。

语法

参数

  • `df1, df2`: 要合并的 DataFrame。
  • `on='key'`: 要合并的通用列。
  • `how='join_type'`: 连接类型:'inner'、'outer'、'left' 或 'right'。

处理日期和时间

处理日期和时间对于时间序列分析至关重要。

语法

参数

  • `df['column']`: 包含日期/时间数据的列。

创建时间序列索引

将日期列设置为索引可以简化时间序列分析。

语法

参数

  • `df.set_index('date_column')`: 要设置为索引的列。
  • `inplace=True`: 就地修改 DataFrame。

重采样时间序列数据

重采样以不同频率聚合时间序列数据。

语法

参数

  • `resample('frequency')`: 频率字符串(例如,'M' 表示月份)。
  • `function()`: 聚合函数。

计算滚动统计量

滚动数据可提供移动窗口的见解。

语法

参数

  • `df['column']`: 要计算滚动数据的列。
  • `rolling(window_size)`: 窗口大小。
  • `function()`: 聚合函数。

移动数据

移动数据对于在时间序列分析中创建滞后特征很有用。

语法

参数

  • `df['column']`: 要移动的列。
  • `shift(periods)`: 要移动的间隔数。

移除异常值

移除异常值有助于提高统计模型的性能。

语法

参数

  • `df['column']`: 要检查异常值的列。
  • `lower_bound`, `upper_bound`: 定义异常值的阈值。

创建虚拟变量

回归模型中使用虚拟变量来表示分类数据。

语法

参数

  • `df`: DataFrame。
  • `columns=['column']`: 要创建虚拟变量的列。

计算相关矩阵

相关矩阵表示数值特征之间的关系。

语法

使用 Query 过滤 DataFrame

使用条件字符串查询 DataFrame 是一种过滤数据的便捷方法。

语法

参数

  • `condition`: 代表要过滤的条件的字符串。

将多个函数应用于组

将多个聚合函数应用于组可提供全面的摘要。

语法

参数

  • `df.groupby('column')`: 对 DataFrame 进行分组。
  • `agg('column1': ['function1', 'function2'])`: 指定列和函数的字典。

对 DataFrame 值进行排名

对值进行排名有助于对数据进行排序,这在竞赛和评分系统中尤其有用。

语法

创建自定义聚合函数

自定义聚合函数允许对组进行定制化汇总。

语法

参数

  • `custom_function`: 用户定义的函数。

更改显示选项

修改显示选项有助于可视化具有大量行/列的 DataFrame。

语法

参数

  • `'display.option'`: 要修改的显示选项。
  • `value`: 显示选项的新值。

使用 `.loc` 和 `.iloc` 进行选择

`.loc` 和 `.iloc` 提供强大的方法,可通过标签和位置选择 DataFrame 的子集。

语法

参数

  • `row_label`, `column_label`: 行和列的标签。
  • `row_position`, `column_position`: 行和列的整数位置。

使用 Pandas Plot 可视化数据

快速可视化数据并利用 Pandas 内置的绘图功能。

语法

参数

  • `type='plot_type'`: 图表类型(例如,'line'、'bar'、'hist')。