【AI Study】第四天,Pandas(1)- 基础知识

文章概要

本文详细介绍 Pandas 库的基础知识,包括:

  • Pandas 的基本概念和特点
  • 安装和配置方法
  • 核心数据结构(Series 和 DataFrame)
  • 各种数据类型的处理方法
  • 实际应用示例

什么是 Pandas

Pandas 是 Python 中最流行的数据分析库之一,它提供了高性能、易用的数据结构和数据分析工具。Pandas 的名字来源于 “Panel Data”(面板数据),这是一个计量经济学术语,用于描述多维结构化数据集。

Pandas 的主要特点

  1. 强大的数据结构

    • Series:一维带标签数组
    • DataFrame:二维表格型数据结构
    • Panel:三维数据结构(在新版本中已弃用)
  2. 灵活的数据处理能力

    • 数据清洗和准备
    • 数据转换和重塑
    • 数据合并和连接
    • 数据分组和聚合
  3. 丰富的数据分析功能

    • 统计分析
    • 时间序列分析
    • 数据可视化集成
  4. 高性能

    • 基于 NumPy 构建
    • 优化的 C 语言实现
    • 支持大数据集处理

Pandas 与其他数据分析工具的比较

特性 Pandas NumPy Excel
数据结构 Series, DataFrame ndarray 表格
处理速度 非常快 较慢
内存使用 中等
可视化 基础 丰富
适用场景 数据分析、清洗 科学计算 简单分析

安装与配置

安装 Pandas

使用 pip 安装:

pip install pandas

使用 conda 安装:

conda install pandas

导入 Pandas

在 Python 中导入 Pandas:

import pandas as pd

版本检查

检查 Pandas 版本:

import pandas as pd
print(pd.__version__)

数据结构

Series 数据结构

Series 是 Pandas 中最基本的数据结构,它是一个一维的带标签数组。

创建 Series
# 从列表创建
s1 = pd.Series([1, 3, 5, 7, 9])

# 从字典创建
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})

# 指定索引
s3 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
Series 的基本操作
# 访问数据
print(s1[0])  # 通过位置访问
print(s2['a'])  # 通过标签访问

# 数学运算
print(s1.mean())  # 计算平均值
print(s1.sum())   # 计算总和

# 布尔索引
print(s1[s1 > 5])  # 选择大于5的值
Series 的索引和切片
# 位置索引
print(s1[0:3])  # 选择前三个元素

# 标签索引
print(s2['a':'c'])  # 选择标签从a到c的元素

# 条件索引
print(s1[s1 > 5])  # 选择大于5的元素

DataFrame 数据结构

DataFrame 是 Pandas 中最常用的数据结构,它是一个二维的表格型数据结构。

创建 DataFrame
# 从字典创建
df1 = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c']
})

# 从列表创建
df2 = pd.DataFrame([
    [1, 'a'],
    [2, 'b'],
    [3, 'c']
], columns=['A', 'B'])

# 从 NumPy 数组创建
import numpy as np
df3 = pd.DataFrame(np.random.randn(3, 3))
DataFrame 的基本操作
# 查看数据
print(df1.head())  # 查看前几行
print(df1.tail())  # 查看后几行
print(df1.info())  # 查看数据信息

# 选择列
print(df1['A'])  # 选择单列
print(df1[['A', 'B']])  # 选择多列

# 选择行
print(df1.iloc[0])  # 通过位置选择行
print(df1.loc[0])   # 通过标签选择行
DataFrame 的索引和切片
# 选择特定行和列
print(df1.iloc[0:2, 0:1])  # 选择前两行第一列

# 条件选择
print(df1[df1['A'] > 1])  # 选择A列大于1的行

# 多条件选择
print(df1[(df1['A'] > 1) & (df1['B'] == 'b')])

数据类型

数值类型

Pandas 支持多种数值类型:

  • int64:64位整数
  • float64:64位浮点数
  • bool:布尔值
# 查看数据类型
print(df1.dtypes)

# 转换数据类型
df1['A'] = df1['A'].astype('float64')

字符串类型

Pandas 中的字符串操作:

# 字符串方法
df1['B'] = df1['B'].str.upper()  # 转换为大写
df1['B'] = df1['B'].str.lower()  # 转换为小写

时间类型

Pandas 提供了强大的时间序列处理功能:

# 创建时间序列
dates = pd.date_range('20230101', periods=3)
df1['date'] = dates

# 时间操作
df1['date'] = df1['date'] + pd.Timedelta(days=1)

分类数据

使用分类数据可以节省内存并提高性能:

# 创建分类数据
df1['B'] = df1['B'].astype('category')

缺失值处理

Pandas 提供了多种处理缺失值的方法:

# 检查缺失值
print(df1.isnull())

# 删除缺失值
df1.dropna()

# 填充缺失值
df1.fillna(0)  # 用0填充
df1.fillna(method='ffill')  # 用前一个值填充

实际应用示例

示例1:学生成绩分析

# 创建学生成绩数据
scores = pd.DataFrame({
    '姓名': ['张三', '李四', '王五', '赵六'],
    '语文': [85, 92, 78, 88],
    '数学': [92, 88, 95, 82],
    '英语': [88, 85, 90, 87]
})

# 计算平均分
scores['平均分'] = scores[['语文', '数学', '英语']].mean(axis=1)

# 按平均分排序
scores_sorted = scores.sort_values('平均分', ascending=False)

# 显示结果
print(scores_sorted)

示例2:销售数据分析

# 创建销售数据
sales = pd.DataFrame({
    '日期': pd.date_range('20230101', periods=5),
    '产品': ['A', 'B', 'A', 'C', 'B'],
    '销量': [100, 150, 120, 80, 200],
    '单价': [10, 15, 10, 20, 15]
})

# 计算销售额
sales['销售额'] = sales['销量'] * sales['单价']

# 按产品分组统计
product_stats = sales.groupby('产品').agg({
    '销量': 'sum',
    '销售额': 'sum'
})

# 显示结果
print(product_stats)

总结

Pandas 基础部分涵盖了:

  1. Pandas 的基本概念和特点
  2. 安装和配置方法
  3. 核心数据结构(Series 和 DataFrame)
  4. 各种数据类型的处理方法
  5. 实际应用示例

这些基础知识是使用 Pandas 进行数据分析的基础,掌握这些内容后,您就可以开始进行更复杂的数据分析工作了。在实际应用中,建议多练习这些基础操作,熟悉各种数据结构的特性和使用方法,为后续的进阶学习打下坚实的基础。

你可能感兴趣的:(AI,Study,人工智能,pandas,ai)