10 分钟掌握 Pandas 核心操作:从零开始的数据分析实战

科技   2024-10-25 11:27   中国香港  

大家好,我是章北海

在数据分析领域,Pandas 是一个不可或缺的 Python 库。

本文将通过一个真实的销售数据分析案例,系统地介绍 Pandas 的核心操作。无论你是数据分析新手还是希望系统复习的老手,这篇文章都值得收藏。

一、项目背景

假设你是一家连锁店的数据分析师,需要处理和分析全国各地区的销售数据。数据分散在不同的文件中,包括:

  • 销售记录(CSV 格式)
  • 客户信息(JSON 格式)

我们的目标是将这些数据整合起来,进行清洗和分析,最终得出有价值的商业洞察。

二、数据准备

首先,让我们创建示例数据:

# 创建示例 CSV 数据
sales_data = """
date,product,price,quantity,region
2024-01-01,A,100,5,North
2024-01-02,B,200,,South
2024-01-03,A,100,3,East
2024-01-04,C,300,4,West
2024-01-05,B,200,2,North
"""


# 创建示例 JSON 数据
customer_data = """
{
    "customers": [
        {"id": 1, "name": "张三", "region": "North"},
        {"id": 2, "name": "李四", "region": "South"}
    ]
}
"""


# 将数据保存到文件
with open('sales.csv''w'as f:
    f.write(sales_data)
    
with open('customers.json''w'as f:
    f.write(customer_data)

三、数据导入

Pandas 提供了丰富的数据导入功能,可以处理多种格式的数据文件:

import pandas as pd

# 导入 CSV 格式销售数据
df_sales = pd.read_csv('sales.csv')

# 导入 JSON 格式客户数据
df_customers = pd.read_json('customers.json')

# 创建日期索引
date_range = pd.date_range(start='2024-01-01', end='2024-01-05', freq='D')

# 合并数据集
df_combined = pd.concat([df_sales, df_customers], axis=1)

四、数据清洗

数据清洗是数据分析中最重要的步骤,包括处理缺失值、数据转换等操作:

# 1. 处理缺失值
df_sales = df_sales.fillna(0)  # 将缺失值填充为 0

# 2. 删除无效数据
df_sales = df_sales.dropna(how='all')  # 删除全为空的行

# 3. 数据排序
df_sales = df_sales.sort_values('price')  # 按价格排序

# 4. 数据转换
df_sales['total'] = df_sales.apply(lambda x: x['price'] * x['quantity'], axis=1)

# 5. 分组统计
region_stats = df_sales.groupby('region').agg({
    'total''sum',
    'quantity''count'
})

# 6. 数据合并
df_merged = df_sales.join(df_customers.set_index('region'), on='region')

# 7. 重命名列
df_sales = df_sales.rename(columns={'quantity''sales_volume'})

# 8. 设置索引
df_sales = df_sales.set_index('date')

五、数据统计分析

清洗完数据后,我们可以进行统计分析:

# 1. 查看数据概览
print("数据前 5 行:")
print(df_sales.head())

print("\n数据基本信息:")
print(df_sales.info())

# 2. 基础统计
print("\n基础统计值:")
print(df_sales.describe())

# 3. 详细统计
print("\n具体统计指标:")
print("平均价格:", df_sales['price'].mean())
print("价格中位数:", df_sales['price'].median())
print("销量总计:", df_sales['sales_volume'].count())
print("价格标准差:", df_sales['price'].std())
print("最高价格:", df_sales['price'].max())
print("最低价格:", df_sales['price'].min())

六、分析结果示例

数据前5行:
            product  price  sales_volume region  total
2024-01-01       A    100            5  North    500
2024-01-02       B    200            0  South      0
2024-01-03       A    100            3   East    300
2024-01-04       C    300            4   West   1200
2024-01-05       B    200            2  North    400

平均价格: 180.0
价格中位数: 200.0
销量总计: 5
价格标准差: 84.85
最高价格: 300
最低价格: 100

七、实战技巧总结

  1. 数据导入技巧

  • 使用适当的 read_*() 函数导入不同格式的数据
  • 合理使用 concat() 合并多个数据源
  • 数据清洗要点

    • 始终检查并处理缺失值
    • 使用 groupby() 进行分组分析
    • 灵活运用 apply() 进行数据转换
  • 统计分析方法

    • 先用 describe() 获取整体概览
    • 根据业务需求选择合适的统计指标
    • 注意异常值的处理

    八、结语

    本文通过一个完整的案例,展示了 Pandas 中最常用的数据处理操作。这些操作覆盖了数据分析工作中 90% 的日常需求。建议大家在实践中多加练习,熟能生巧。

    记住,数据分析不仅仅是掌握这些技术操作,更重要的是培养数据思维,学会从数据中发现问题和洞察。

    模型篇P1:机器学习基本概念

    迄今最好的AI代码编辑器,编程只需狂按Tab

    【大模型实战,完整代码】AI 数据分析、可视化项目

    108页PDF小册子:搭建机器学习开发环境及Python基础

    116页PDF小册子:机器学习中的概率论、统计学、线性代数

    全网最全 Python、机器学习、AI、LLM 速查表(100 余张)

    Obsidian AI写作神器:一键配置DeepSeek,写作效率飙升1000%!

    基于 QAnything 的知识库问答系统:技术解析与应用实践【附代码】


    机器学习算法与Python实战
    长期跟踪关注统计学、数据挖掘、机器学习算法、深度学习、人工智能技术与行业发展动态,分享Python、机器学习等技术文章。回复机器学习有惊喜资料。
     最新文章