震惊!我与人工智能不可说的秘密(Pandas篇)!

前言

        Pandas 的名字来源于 "Panel Data"(面板数据)和 "Python Data Analysis",旨在提供高效的数据处理和分析能力。它广泛应用于学术研究、金融、机器学习等领域。

目录:

一、pandas是什么?

二、Pandas 核心数据结构

Series

DataFrame 

三、Pandas 性能优化

1. 使用适当的数据类型

2. 避免不必要的循环

3. 优化索引

4. 分块处理大数据集

5. 使用高效的文件格式

四、Pandas 数据读取与处理

1. 常见文件读取函数

2. 示例代码 

3. 处理大文件

五、Pandas 高级功能

1. 数据统计与分析

2. 时间序列处理

3. 数据合并

4. 缺失值处理

六、总结

一、pandas是什么?

        Pandas 是 Python 中最受欢迎的数据分析库之一,它基于 NumPy 构建,提供了高效灵活的数据结构和操作工具。Pandas 的核心数据结构是 Series 和 DataFrame,它们在数据处理和分析中发挥着重要作用。以下是 Pandas 的深入讲解,包括其核心功能、性能优化技巧、数据读取与处理等。

二、Pandas 核心数据结构

  • Series
     

  • Series 是 Pandas 的核心数据结构之一,类似于一维数组,但支持标签索引。       
  • 创建方式:
    import pandas as pd 
    import numpy as np 
    
    # 从 ndarray 创建 
    s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
    print(s)

 输出:

a    1 
b    2 
c    3 
dtype: int64 
    • 主要属性:
      • index: 行索引。
      • values: 数值数组。
      • dtype: 数据类型。
      • size: 元素个数。
    • 操作:

      • 算术运算:支持加、减、乘、除等运算。
      • 索引操作:支持标签索引(loc)和位置索引(iloc)    
    • DataFrame 

      • DataFrame 是 Pandas 的另一种核心数据结构,类似于二维表格,由多列 Series 组成。

      • 创建方式:

        # 从字典创建
        data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
        df = pd.DataFrame(data)
        print(df)

        输出:

           A  B
        0  1  4
        1  2  5
        2  3  6
        
      • 主要属性:

        • columns: 列名。
        • index: 行索引。
        • values: 数据数组。
        • dtypes: 各列的数据类型。
      • 操作:

        • 数据选择:支持按列名、行索引等方式选择数据。
        • 数据修改:支持添加、删除、修改列。
        • 数据排序:支持按列值排序。
        • 数据分组:支持按列值分组并聚合。

    三、Pandas 性能优化

    当处理大规模数据时,Pandas 的性能可能会成为瓶颈。以下是一些常见的性能优化技巧:

    1. 使用适当的数据类型
    • 使用 astype() 方法转换数据类型。
    • 对字符数据使用 category 类型以减少内存占用。
    2. 避免不必要的循环
    • 尽量使用 Pandas 的内置函数(如 apply()groupby())代替 Python 的原生循环。
    • 使用向量化操作(如 vectorized operations)提高计算效率。
    3. 优化索引
    • 确保使用适当的索引(如 set_index() 或 reset_index())。
    • 避免链式赋值(chain assignment),以免引发性能问题。
    4. 分块处理大数据集
    • 使用 chunksize 参数分块读取数据。
    • 使用 Dask 或 Vaex 等库处理超出内存限制的数据集。
    5. 使用高效的文件格式
    • 使用 pkl 或 hdf 格式存储数据,以提高读写速度。

    四、Pandas 数据读取与处理

    Pandas 提供了丰富的数据读取函数,支持多种文件格式。

    1. 常见文件读取函数
    文件格式 函数 描述
    CSV read_csv() 读取 CSV 文件。
    Excel read_excel() 读取 Excel 文件。
    JSON read_json() 读取 JSON 文件。
    HDF read_hdf() 读取 HDF 文件。
    Pickle read_pickle() 读取 Pickle 文件。
    2. 示例代码

     

    # 读取 CSV 文件
    df = pd.read_csv('data.csv',  sep=',', header=0)
    
    # 读取 Excel 文件
    df = pd.read_excel('data.xlsx',  sheet_name='Sheet1')
    
    # 读取 JSON 文件
    df = pd.read_json('data.json') 
    3. 处理大文件
    • 使用 nrows 参数限制读取的行数。
    • 使用 usecols 参数指定需要读取的列。
    • 使用 dtype 参数指定数据类型,减少内存占用。

    五、Pandas 高级功能

    1. 数据统计与分析
    • describe(): 计算数值列的统计量(均值、标准差、最小值等)。
    • groupby(): 按指定列分组并聚合。
    • pivot_table(): 创建透视表,进行复杂的分组统计。
    2. 时间序列处理
    • to_period(): 将日期转换为特定的时间周期(年、月、季度等)。
    • resample(): 对时间序列数据进行重采样(按天、周、月等汇总)。
    3. 数据合并
    • merge(): 按指定列合并两个 DataFrame。
    • concat(): 按行或列拼接多个 DataFrame。
    4. 缺失值处理
    • isnull(): 检测缺失值。
    • fillna(): 填充缺失值。
    • dropna(): 删除包含缺失值的行或列。

    六、总结

    Pandas 是 Python 数据分析领域不可或缺的工具,其强大的数据处理能力和灵活的 API 设计使其成为数据科学家和工程师的首选库。通过深入理解其核心数据结构、掌握性能优化技巧以及熟悉数据读取与处理方法,可以显著提高数据分析的效率和质量。

    如果你希望进一步掌握 Pandas,可以通过以下方式练习:

    1. 完成 Pandas 的官方文档教程(官方文档 )。
    2. 实践真实的数据集(如 Kaggle 提供的数据集)。
    3. 解决实际项目中的数据处理问题。

    通过不断实践和积累经验,你将能够熟练掌握 Pandas 并在数据分析领域游刃有余!