文章概要

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87363.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87363.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/87363.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重构气血经络的数学模型:气血经络级联控制系统核心方程

从融智学视域,重构气血经络的数学模型 摘要: 融智学视域,通过三元耦合框架,重构气血经络模型,建立跨学科认知体系。五大分支协同运作:数学融智学构建纤维丛模型,逻辑融智学建立防歧义语义网&…

python爬虫:某网站价格数字加密破解

文章目录 前言一、案例二、破解流程1.原理2.找到woff文件3.分析woff文件4.代码实现1.转化woff文件2.绘图并ocr识别3.映射数据 三、总结 前言 有时我们在进行网页抓取采集数据时,有些重要的数据比如说价格,数量等信息会进行加密,通过复制或者简单的采集是…

DigitalOcean 携手 AMD 推出 AMD Instinct™ MI300X GPU Droplet,加速 AI 创新

近日,DigitalOcean(NYS:DOCN)作为全球最简单易用的可扩展云平台,宣布与 AMD 建立合作,为 DigitalOcean 客户提供 AMD Instinct™ GPU,以 AMD Instinct™ MI300X GPU Droplet 的形式支持其 AI 工作负载。此举…

小白畅通Linux之旅-----DNS项目实战配置

目录 一、项目要求 1、正反向解析配置 2、主从配置 二、脚本编写配置 1、主服务器脚本编写 2、从服务器脚本编写 三、项目检测 1、正反向解析检测 (1)主服务器脚本启动 (2)测试主机配置 (3)正反…

Codigger:探索数字工作新架构

在软件开发与数字工作领域,技术迭代的脚步从未停歇,开发者和系统管理员都在寻找更高效的工具和平台。Codigger 作为一项创新技术成果,凭借其独特的定位和架构,在行业内逐渐崭露头角。 Codigger “分布式操作系统”,它…

微信中 qrcode 生成二维码长按无效果的解决方案

引言 我们先来看这样一段代码 <divid"qrcode"ref"qrcode"class"bind-code-img"style"height: 180px;width: 180px;margin-top: 22px;display: none; "></div> new QRCode("qrcode", {width: 210,height: 210,t…

《网络安全与防护》作业复习

填空题 1. 网络数据库与数据安全专项作业 填空题解析&#xff1a; 数据库安全的“三大核心目标”是 完整性&#xff1b;保密性&#xff1b;可用性 解释&#xff1a;数据库安全的三个核心目标是确保数据的完整性、保密性以及可用性&#xff0c;即保护数据不被篡改、未经授权访…

【windows常见文件后缀】

文件后缀解释css层叠样式表&#xff08;Cascading Style Sheets&#xff09;&#xff1a;用于描述HTML或XML&#xff08;包括如SVG、XHTML等XML方言&#xff09;文档的呈现样式&#xff0c;控制网页的布局、颜色、字体等视觉效果。jsJavaScript&#xff1a;一种轻量级的解释型或…

labelme启动报错动态链接库DLL初始化例程失败

安装 pip install labelme启动 labelmewin11python3.12&#xff0c;pycharm venv 安装&#xff1a; pip install labelme&#xff0c;启动labelme报错&#xff1a; 降级numpy&#xff0c;降级onnxruntime pip install “numpy<2.0” pip install onnxruntime1.18.0 再次cm…

Mybatis(javaweb第九天)

Mybatis基础操作 占位符&#xff1a;#{变量名} 注意事项&#xff1a;如果Mapper接口方法只有一个普通类型参数&#xff0c;属性名可以随便写 > Preparing: delete from emp where id? > Parameters: 1(Integer) 预编译SQL 不会将值直接放在SQL语句中&#xff0c;而是…

C#开发MES管理系统源码工业生产线数据采集WPF上位机产线执行系统源码

该源码是实际生产线运行的实际项目&#xff0c;全套源码。适合开发者学习参考&#xff0c;有需要源码可以联系博主

`ngx_otel_module` NGINX OpenTelemetry 分布式追踪实战

1. 模块简介 ngx_otel_module 为 NGINX&#xff08;开源版 1.25.3&#xff0c;商业版 1.23.4&#xff09;提供了 OpenTelemetry&#xff08;OTel&#xff09;分布式追踪支持&#xff0c;能够&#xff1a; 自动采集 HTTP 请求的生命周期 Span上下文传播&#xff1a;兼容 W3C t…

Vue+TypeScript 枚举(Enum)的使用规范

在 TypeScript 中&#xff0c;枚举&#xff08;Enum&#xff09;的命名应遵循以下规范&#xff0c;这些规范结合了 TypeScript 官方建议和行业最佳实践&#xff1a; 枚举命名规范&#xff08;TypeScript/Vue 项目&#xff09; 基本命名规则&#xff1a; 使用 PascalCase&#…

一个完整的LSTM风光发电预测与并网优化方案,包含数据处理、模型构建、训练优化、预测应用及系统集成实现细节

以下是一个完整的LSTM风光发电预测与并网优化方案,包含数据处理、模型构建、训练优化、预测应用及系统集成实现细节: 风光发电功率预测与并网优化系统 基于LSTM的时间序列预测与储能协同控制 第一部分:系统架构设计(1200字) 1.1 整体技术路线 #mermaid-svg-U5pxzefmzZ4s…

如何在 MX Linux 上安装 Mint 的 Cinnamon 桌面 UI

如何在 MX Linux 上安装 Mint 的 Cinnamon 桌面 UI 你是否想在 MX Linux 上安装流行的 Linux Mint Cinnamon 图形用户界面?那么这里有一个教程…… Cinnamon 是一个类似 Windows 7 的界面,它默认安装在 Linux Mint 操作系统中。它使 Mint 非常易于理解和使用,这也是 Mint …

OpenStack 入门

目录 简介 一、云计算与 OpenStack 基础概念 1.1 云计算概述 1.2 OpenStack 简介 二、OpenStack 单机环境部署 2.1 环境准备 2.2 部署前准备工作 2.3 在线部署 OpenStack&#xff08;Train 版本&#xff09; 三、通过 Dashboard 部署 OpenStack 的功能 3.1 登录 Dash…

【Git】关于项目开发分支的使用规范

背景 在项目开发过程中&#xff0c;往往一个优秀的产品都会出现不断的版本迭代&#xff0c;我时常在项目发布后对于如何结合后续更新的业务场景在分支上的应用没有一个很好的办法&#xff0c;一直也比较苦恼。目前项目的迭代场景如下&#xff0c;一个A项目&#xff0c;经过需求…

msquic的windows版本编译

首先确保安装cmake和powershell&#xff08;需要6以上&#xff0c;本人升级到了7.5&#xff09;&#xff0c;vs&#xff08;本人用的vs2022&#xff09; powershell&#xff0c;默认是5&#xff0c;会编译不成功&#xff0c;所以附带一个升级的流程 $PSVersionTable.PSVersion …

批量文件重命名工具 OncePower ,永久免费!

软件介绍 适用于Windows OncePower是一款Windows批量重命名工具&#xff0c;支持基本及高级匹配重命名&#xff0c;无需复杂正则。特色包括匹配修改、长度截取、日期命名、前缀后缀修改及TXT文件导入。支持保留特定内容、批量移动文件和删除空文件夹。可保存设置&#xff0c;…

Python入门Day6.1:异常处理

一、什么是异常&#xff08;Exception&#xff09;&#xff1f; 异常是指程序运行过程中出现的错误情况。比如&#xff1a; 打开一个不存在的文件0作为除数列表索引越界类型转换失败 二、基本结构&#xff1a;try...except try:# 可能出错的代码 except 错误类型:# 出错时执…