• Python进阶复习-Pandas库


    使用场合

    • Pandas库是基于Numpy库建立的
    • 为数据添加标签、处理缺失值、分组和透视表方面Pandas更高效

    对象创建

    Series对象

    • Series 是带标签的【默认是从0开始的数字】一维数据结构,类似于字典,可以用来表示一列数据。
    import pandas as pd
    # 创建 Series 对象  
    s = pd.Series([1, 2, 3, 4, 5])  
    print(s)
    
    • 1
    • 2
    • 3
    • 4
    0    1
    1    2
    2    3
    3    4
    4    5
    dtype: int64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    DataFrame对象

    • DataFrame 是带标签的多维数据结构,类似于表格,可以用来表示多列数据。
    # 创建 DataFrame 对象  
    df = pd.DataFrame({'列 1': [1, 2, 3, 4, 5], '列 2': [6, 7, 8, 9, 10]})  
    print(df)
    
    • 1
    • 2
    • 3
    12
    0    1    6
    1    2    7
    2    3    8
    3    4    9
    4    5   10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 属性
    1. index: DataFrame的行索引。
    2. columns: DataFrame的列索引。
    3. dtypes: DataFrame 的数据类型。
    4. shape: DataFrame的行数和列数,返回一个元组 (rows, columns)。
    5. size: DataFrame的行数和列数的乘积,返回一个整数。
    6. values:返回 DataFrame 的全部数据,不包括索引。
    7. iterrows():返回一个迭代器,可以遍历 DataFrame 的每一行。
    8. itertuples():返回一个迭代器,可以遍历 DataFrame 的所有元组。
    9. apply():对 DataFrame 的每一列应用一个函数。
    10. agg():对 DataFrame 的每一列应用一个函数,返回一个新的 DataFrame。

    Numpy与DataFrame

    import numpy as np
    import pandas as pd
    arr = np.array([[1, 2, 3], [4, 5, 6]])  
    df = pd.DataFrame(arr,index=["hang","zhou"],columns=["lie","zhou","ya"]) 
    print(df) 
    
    • 1
    • 2
    • 3
    • 4
    • 5
          lie  zhou  ya
    hang    1     2   3
    zhou    4     5   6
    
    • 1
    • 2
    • 3

    处理缺失值

    1. 删除缺失值:使用dropna()函数,可以删除包含缺失值的行或列。例如:
    import pandas as pd
    
    data = {'A': [1, 2, None, 4], 'B': [None, 2, 3, 4]}  
    df = pd.DataFrame(data)
    
    # 删除包含缺失值的行  
    df_no_na = df.dropna()
    
    # 删除包含缺失值的列  
    df_no_na = df.dropna(axis=1)  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. 填充缺失值:使用fillna()函数,可以填充缺失值。可以使用指定的值、前一个值、后一个值、均值、中位数等方法。例如:
    import pandas as pd
    
    data = {'A': [1, 2, None, 4], 'B': [None, 2, 3, 4]}  
    df = pd.DataFrame(data)
    
    # 使用指定的值填充缺失值  
    df_filled = df.fillna(value=0)
    
    # 使用前一个值填充缺失值  
    df_filled = df.fillna(method='ffill')
    
    # 使用后一个值填充缺失值  
    df_filled = df.fillna(method='bfill')
    
    # 使用均值填充缺失值  
    df_filled = df.fillna(method='mean')  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    分组

    groupby() 函数

    import pandas as pd
    
    # 创建一个 dataframe 对象  
    data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'A'],  
            'Value': [10, 20, 30, 40, 50, 60, 70, 80]}  
    df = pd.DataFrame(data)
    
    # 使用 groupby() 函数进行分组  
    grouped = df.groupby('Category')
    
    # 查看分组结果  
    for name, group in grouped:  
        print(name)  
        print(group)  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    A
      Category  Value
    0        A     10
    2        A     30
    4        A     50
    6        A     70
    7        A     80
    B
      Category  Value
    1        B     20
    3        B     40
    5        B     60
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    apply()函数

    • pandas 库的 apply() 函数用于对 DataFrame 或 Series 对象进行逐行或逐列的操作。它接受一个函数作为参数,并将该函数应用于对象的每个元素。apply 函数可以用于执行数据转换、计算、过滤等操作。
    import pandas as pd
    
    # 创建一个 DataFrame  
    data = {'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}  
    df = pd.DataFrame(data)
    
    # 定义一个函数,用于将每个元素乘以 2  
    def multiply_by_2(x):  
        return x * 2
    
    # 使用 apply 函数  
    result = df.apply(multiply_by_2)
    
    print(result)  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    执行结果:

       A   B  
    0  2  10  
    1  4  12  
    2  6  14  
    3  8  16  
    
    • 1
    • 2
    • 3
    • 4
    • 5

    透视表

    • Pandas的透视表主要用于数据汇总和分析。当需要对大量数据进行快速汇总和分析时,可以使用透视表来完成。透视表可以将数据按照不同的维度进行分组,并计算每个分组的聚合数据,例如求和、平均值、计数等。
    import pandas as pd
    
    # 创建一个数据框  
    data = {'A': [1, 2, 3, 4, 5],  
            'B': [10, 20, 30, 40, 50],  
            'C': [100, 200, 300, 400, 500]}  
    df = pd.DataFrame(data)
    
    # 创建透视表  
    pivot_table = pd.pivot_table(df, values='C', index='A', columns='B', aggfunc='sum')
    
    print(pivot_table)  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    输出:

             B    sum  
    A            
    1        10  1100  
    2        20  2100  
    3        30  3100  
    4        40  4100  
    5        50  5100  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    【考研数学】线性代数第六章 —— 二次型(3,正定矩阵与正定二次型)
    【技术精粹】AppGallery Connect开发精品实战课
    微信小程序发布上线全流程(注册/开发/上传审核)
    配置mysql+Navicat+XShell宝塔:Mark
    C++多线程编程:其六、unique_lock的使用
    Linux常用指令(十)——服务器相关与互传文件
    git如何拉去某个tag的代码
    【SA8295P 源码分析 (二)】10 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析
    JS高级:闭包的缺点即解决
    MATLAB/Python编程:绘制一维和二维的分布直方图
  • 原文地址:https://blog.csdn.net/weixin_45880844/article/details/133043610