面向数据科学家的 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 的前几行可以快速分析数据。 语法 参数 显示最后几行显示 DataFrame 的最后几行以检查数据末尾。 语法 参数 显示 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')。
|