Python Pandas 数据处理技巧详解:高效利用利器进行数据处理

Pandas 是 Python 数据分析的核心库之一,提供了快速、灵活且富有表现力的数据结构。下面我将介绍一些实用的 Pandas 技巧,并通过一个完整的代码示例展示如何高效使用 Pandas 进行数据处理。

1. 基础数据结构

Pandas 主要有两种数据结构:

  • Series:一维数组,类似于带标签的 NumPy 数组

  • DataFrame:二维表格型数据结构,可以看作 Series 的容器

  • 2. 实用技巧与代码示例

    示例:销售数据分析

    import pandas as pd
    import numpy as np
    
    # 创建示例数据
    data = {
        'Date': pd.date_range(start='2023-01-01', periods=10),
        'Product': ['A', 'B', 'A', 'C', 'B', 'A', 'C', 'B', 'A', 'C'],
        'Sales': [120, 150, 135, 90, 110, 95, 130, 145, 115, 125],
        'Region': ['North', 'South', 'East', 'West', 'North', 'South', 'East', 'West', 'North', 'South']
    }
    
    df = pd.DataFrame(data)
    print("原始数据:")
    print(df)

    结果:

    原始数据:
            Date Product  Sales Region
    0 2023-01-01       A    120  North
    1 2023-01-02       B    150  South
    2 2023-01-03       A    135   East
    3 2023-01-04       C     90   West
    4 2023-01-05       B    110  North
    5 2023-01-06       A     95  South
    6 2023-01-07       C    130   East
    7 2023-01-08       B    145   West
    8 2023-01-09       A    115  North
    9 2023-01-10       C    125  South

    技巧1:数据查看与基本信息

    # 查看前几行
    print("\n前3行数据:")
    print(df.head(3))
    
    # 查看数据基本信息
    print("\n数据基本信息:")
    print(df.info())
    
    # 描述性统计
    print("\n描述性统计:")
    print(df.describe())

    结果:

    前3行数据:
            Date Product  Sales Region
    0 2023-01-01       A    120  North
    1 2023-01-02       B    150  South
    2 2023-01-03       A    135   East
    
    数据基本信息:
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 10 entries, 0 to 9
    Data columns (total 4 columns):
     #   Column   Non-Null Count  Dtype         
    ---  ------   --------------  -----         
     0   Date     10 non-null     datetime64[ns]
     1   Product  10 non-null     object        
     2   Sales    10 non-null     int64         
     3   Region   10 non-null     object        
    dtypes: datetime64[ns](1), int64(1), object(2)
    memory usage: 452.0+ bytes
    None
    
    描述性统计:
                          Date       Sales
    count                   10   10.000000
    mean   2023-01-05 12:00:00  121.500000
    min    2023-01-01 00:00:00   90.000000
    25%    2023-01-03 06:00:00  111.250000
    50%    2023-01-05 12:00:00  122.500000
    75%    2023-01-07 18:00:00  133.750000
    max    2023-01-10 00:00:00  150.000000
    std                    NaN   19.727308
    
    

    技巧2:数据选择与过滤

    # 选择单列
    products = df['Product']
    print("\n产品列:")
    print(products)
    
    # 多列选择
    subset = df[['Product', 'Sales']]
    print("\n产品和销售额列:")
    print(subset)
    
    # 条件过滤 - 销售额大于120的记录
    high_sales = df[df['Sales'] > 120]
    print("\n高销售额记录:")
    print(high_sales)

     结果:

    产品列:
    0    A
    1    B
    2    A
    3    C
    4    B
    5    A
    6    C
    7    B
    8    A
    9    C
    Name: Product, dtype: object
    
    产品和销售额列:
      Product  Sales
    0       A    120
    1       B    150
    2       A    135
    3       C     90
    4       B    110
    5       A     95
    6       C    130
    7       B    145
    8       A    115
    9       C    125
    
    高销售额记录:
            Date Product  Sales Region
    1 2023-01-02       B    150  South
    2 2023-01-03       A    135   East
    6 2023-01-07       C    130   East
    7 2023-01-08       B    145   West
    9 2023-01-10       C    125  South

    技巧4:分组与聚合

    # 按产品分组计算平均销售额
    grouped = df.groupby('Product')['Sales'].mean()
    print("\n各产品平均销售额:")
    print(grouped)

    # 多级分组聚合
    multi_group = df.groupby(['Region', 'Product']).agg({
        'Sales': ['sum', 'mean', 'count']
    })
    print("\n按区域和产品的销售汇总:")
    print(multi_group)

    4. 总结

    Pandas 提供了丰富的数据处理功能,掌握这些技巧可以显著提高数据分析效率。本文展示了从基础操作到高级分析的完整流程,包括:

  • 数据查看与基本信息获取

  • 数据选择与过滤

  • 排序与分组聚合

  • 缺失值处理

  • 希望这些技巧能帮助你在实际项目中更高效地使用 Pandas 进行数据分析

    作者:Python数据分析工人

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python Pandas 数据处理技巧详解:高效利用利器进行数据处理

    发表回复