面向初学者的 20 个 Pandas 技巧2025年1月7日 | 阅读 8 分钟 引言Pandas 是一个功能强大的 Python 库,用于 数据操作和分析,对于数据科学初学者至关重要。以下是一些帮助初学者轻松完成工作的技巧。从数据读写操作、选择以及更抽象的概念,如缺失值处理、分组(groupby)和数据集合并,这些技巧都很有帮助。您还将学习到能节省时间的快捷方式、如何以最佳方式表示数据以及提高性能的方面等等。通过了解 Pandas 的基础知识,您将能够很好地处理数据,让您的分析工作更轻松、更有趣。 以下是面向初学者的 20 个 Pandas 技巧和窍门 1. 从 CSV 读取数据Pandas 方法 pd.read_csv() 允许 Python 用户通过将 CSV 文件中的数据读入 DataFrame 来快速处理和分析数据。它能够处理损坏或不完整的数据,并自动检测分隔符。 将 CSV 文件中的数据读入 DataFrame 这段代码可以通过读取名为 “data.csv” 的 CSV 文件中的数据到一个名为 df 的变量中来运行,并加载 Pandas 库以启用 Pandas 功能的数据分析和操作。 2. 显示 DataFrameDataFrame 的前几行使用 df.head() 方法打印。如果不提供输入,则 pandas head() 方法返回 DataFrame 的前 n 行,默认为 5 行。 显示 DataFrame 的前几行 由于未提供参数,此函数会检索前五行。 3. 选择列从 DataFrame 中选择特定列 这段代码通过从原始 DataFrame df 中提取指定的列 “column1” 和 “column2”,可以对这些特定列进行有针对性的分析或操作,而不会更改原始 DataFrame。结果是一个名为 selected_columns 的新 DataFrame。 4. 过滤行根据条件过滤行 该代码从 DataFrame df 中选择在 'column' 列中值为 0 以上的行。它选择 'column' 列中值大于 0 的行后,将这些行分配给 filtered_data。 5. 按组聚合Pandas 的 groupby 根据预定义的列或标准对数据进行分组。聚合函数(如均值或总和)通过 agg 应用于每个组,从而为每个组生成一个摘要统计信息。 按列分组并执行聚合 这段代码通过按照 DataFrame "df" 中 "column" 列的不同值对数据进行分组,计算每个组的 "column2" 的均值。结果包含在一个名为 "grouped_data" 的新 DataFrame 中。 6. 对 DataFrame 排序Pandas 的 sort_values() 方法不指定特定列,默认按升序排列 DataFrame 'df'。此函数可以轻松地根据每一列的值重新排列行。 按一列或多列对 DataFrame 排序 此函数接受一个 DataFrame "df" 和一个字符串 "column",并返回一个新的 DataFrame "sorted_df",该 DataFrame 是给定 DataFrame "df" 中按 "column" 列值的降序排列的。 7. 处理缺失值dropna() 方法通过删除包含缺失值 (NaN) 的行来缩小 DataFrame "df"。另一方面,fillna(value) 提供了一种方法来管理或填充缺失数据,通过将 "df" 中的任何缺失值替换为给定的 "value"。 处理 DataFrame 中的缺失值 8. 数据透视表pandas 的 pivot_table() 方法根据指定的列调整 DataFrame 的大小,以生成数据透视表。您可以利用一列作为新索引,另一列添加更多列,第三列提供数据透视表单元格中的值。可以使用多个函数来聚合重复条目。 从 DataFrame 创建数据透视表 9. 日期和时间操作Pandas 可以处理和分析 DataFrame 中的日期和时间,方法是使用 pd.to_datetime() 方法将数据转换为 datetime 对象。它不仅可以解析各种日期格式,还可以返回 DatetimeIndex 或 datetime 对象。 将字符串转换为日期时间格式并提取日期/时间组件 使用 pd.to_datetime(),此代码将 DataFrame "df" 的 DateTime 格式更改为 "datetime_column"。然后,它使用 dt.year 访问器从 datetime 值中提取年份,并将其分配给名为 "year" 的新列。 10. 将分类数据转换为数值数据在 pandas 中,用于将分类数据转换为数值数据(特别是虚拟变量)的函数称为 pd.get_dummies()。存在于其中的特定类别的存在或不存在会创建一个新的数据框,对于原始分类列中的每个类别,其值集为 1 或 0。 使用独热编码将分类变量转换为数值 生成的该新 DataFrame 命名为 "encoded_df"。此代码使用虚拟变量来表示 DataFrame "df" 的 "categorical_column" 中的每个类别。它格式化数值数据,以便可以使用带有分类变量的机器学习模型。 11. 滑动窗口操作通过 Pandas 的 rolling() 方法创建滑动窗口对象,可以沿 DataFrame 或 Series 轴在定义的窗口大小上应用均值、总和等函数。这使得在时间序列或顺序数据分析中计算滑动统计量更加容易。 对 DataFrame 执行滑动窗口计算 此代码使用窗口大小为三来计算 DataFrame "df" 中 "column" 的滑动均值。它计算每个连续项窗口的平均值,以提供数据的平滑表示。 12. 插值填充缺失值pandas 的 interpolate() 函数使用样条、多项式和线性插值技术填充 DataFrame "df" 中的缺失值。通过根据相邻数据点的值预测缺失值来帮助平滑数据。 插值填充 DataFrame 中的缺失值 此代码使用线性插值根据相邻数据点替换 DataFrame "df" 中的缺失值。当 inplace=True 时,"df" 会立即接收修改;无需创建新的 DataFrame。 13. 字符串操作对 DataFrame 列执行字符串操作 向 DataFrame "df" 添加了一个名为 "new_column" 的新列,其中的每个值都是 "column" 中相应值的 uppercase 版本。它使用 Pandas 的 str.upper() 函数将字符串转换为大写。 14. 采样Pandas 的 sample() 方法从 DataFrame "df" 中随机选择预定数量的行(默认为一行),以提供数据的随机样本。当查看或分析数据集的特定区域时,此方法很有用。 从 DataFrame 随机采样行 这段代码从 DataFrame "df" 中随机选择 100 行,并创建一个名为 "sampled_df" 的新 DataFrame。然后,它提供原始数据的一部分用于处理或分析。 15. 应用自定义聚合Pandas 的 groupby() 方法允许根据一个或多个列中的唯一值对 DataFrame 行进行分组。它创建一个名为 GroupBy 的对象,可以对该对象应用分组数据以执行各种操作,包括聚合、转换和过滤。 在 groupby 中应用自定义聚合函数 一个名为 "custom_func" 的自定义聚合函数根据 "column" 列中的唯一值应用于每个 DataFrame "df" 组。数据根据提供的自定义逻辑进行聚合,以构建 "custom_agg" DataFrame。 16. 转换数据类型使用 Pandas 的 astype() 函数将 DataFrame 列的数据类型更改为所需类型。为了确保一致性并适合进一步的操作或分析,列中的值将被转换为指定的数据类型。转换 DataFrame 列的数据类型 17. 排名Pandas 的 rank() 方法对 Series 或 DataFrame 列中的值进行排名。默认情况下,值按升序排列。如果您希望将它们按降序排名,则可以将 ascending=False 设置为 True。 对 DataFrame 中的行进行排名 此代码通过根据值降序排列时的位置对 "df" DataFrame 的 "column" 中的值进行排名来确定它们的排名。一个名为 "rank" 的新列包含排名。 18. 将 DataFrame 转换为 numpy 数组Pandas 的 to_numpy() 函数将 DataFrame "df" 中的数据转换为 NumPy 数组。这提高了数值计算的效率,并简化了与其他库的集成。 将 DataFrame 转换为 Numpy 数组 此代码将名为 "df" 的 DataFrame 转换为名为 "np_array" 的 NumPy 数组,以保留底层数据结构并实现与基于 NumPy 的操作和库的兼容性。 19. Datetime 索引使用 Pandas 的 set_index() 方法将特定列设置为 DataFrame 的索引。它会调整 DataFrame 的索引标签以匹配所选列中的值,从而简化索引和对齐操作。 将 datetime 列设置为时间序列分析的索引 此代码通过将 DataFrame "df" 的索引更改为 "datetime_column" 来有效地将其索引标签更改为与该列中的值匹配。当 inplace=True 时,"df" 会立即更新;不会创建新的 DataFrame。 20. 删除列Pandas 的 drop() 方法根据提供的标签(列名或索引值)从 DataFrame 中删除行或列。通过删除不必要的行和列,可以实现灵活的数据管理。 从 DataFrame 删除列 此代码从 DataFrame "df" 中删除了 "column1" 和 "column2"。当 inplace=True 时,不会创建新的 DataFrame;相反,"df" 会立即更新。 21. 导出数据到 CSVPandas 的 to_csv() 函数将 DataFrame "df" 保存到 CSV(逗号分隔值) 文件。这使得 DataFrame 数据可以导出为 CSV 文件格式,从而能够在其他程序中存储、共享和进行进一步的数据分析。 将 DataFrame 导出到 CSV 文件 此代码将 DataFrame "df" 保存到名为 "output.csv" 的 CSV 文件中,而不将索引值作为单独的列添加。写入 CSV 文件的数据可以共享、存储并由其他应用程序访问。 结论精通 Pandas 能够提供广泛的 Python 数据操作、分析和可视化选项。借助这 20 个面向初学者的快速技巧,您可以简化数据处理工作,从数据集中提取更有价值的信息,并提高 Pandas 数据操作的熟练程度。无论您是从多个来源接收数据、处理和清理数据,还是进行复杂分析,Pandas 都提供了高效处理数据任务所需的工具。 下一个主题数据科学中的预测模型类型 |
我们请求您订阅我们的新闻通讯以获取最新更新。