当前位置: 首页 > news >正文

【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 与其他数据分析工具的比较

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

安装与配置

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

相关文章:

  • 《仿盒马》app开发技术分享-- 订单结合优惠券结算(60)
  • 【Python打卡Day22】kaggle泰坦尼克@浙大疏锦行
  • 黑马点评,请求被取消,首页店铺类型和blog列表无法正常展示
  • Spring MVC 处理静态资源请求 - ResourceHandler
  • Python多态的简单分享
  • HarmonyOS性能优化——感知流畅优化
  • C++ 第一阶段 基本语法 - 第一节:变量与数据类型详解
  • 19.数学函数
  • eps8266作为AP服务端 esp32c3作为STA客户端
  • LVS +Keepalived 高可用群集
  • 稀疏大模型架构与训练算法研究
  • 【排坑指南】MySQL初始化后,Nacos与微服务无法连接??
  • 什么是gateway以及在微服务中是如何使用的
  • openEuler安装BenchmarkSQL
  • 使用YOLO模型进行线程安全推理
  • 如何高效实现公司文件管理
  • HarmonyOS5 分布式测试:断网情况支付场景异常恢复验证
  • 筑牢安全防线:电子文件元数据驱动的 AI 知识库可控管理方案
  • Redis从库读取主库创建且已过期的key
  • 断言(Assertion)中常用的正则表达式
  • 天津做网站的企业/四川整站优化关键词排名
  • 优化型网站建设/合肥网站推广公司哪家好
  • 丝袜用什么做的视频网站/网站分析
  • 简述网站建设的主要内容/网站建设7个基本流程
  • wordpress 加速优化/新余seo
  • 台州免费自助建站模板/优化网站哪个好