Python学习(十四)pandas库入门手册

目录

    • 一、安装与导入
    • 二、核心数据结构
      • 2.1 Series 类型(一维数组)
      • 2.2 DataFrame 类型(二维数组)
    • 三、数据读取与写入
      • 3.1 读取 CSV 和 Excel 文件
      • 3.2 写入数据
    • 四、数据清洗与处理
      • 4.1 处理缺失值
      • 4.2 数据筛选
      • 4.3 数据排序
    • 五、数据分析
      • 5.1 统计描述
      • 5.2 分组聚合
      • 5.3 数据透视表
    • 六、数据可视化
    • 七、高级功能
      • 7.1 合并数据
      • 7.2 处理时间序列

  • 官网地址: https://pandas.pydata.org/

什么是pandas?

pandas 是 Python 中一个强大的 数据处理和分析库,广泛应用于 数据清洗转换分析可视化 等领域。它提供了搞笑的数据结构(如 DataFrameSeries),使得处理结构化数据变得简单而高效。本文将详细介绍 pandas 的核心功能和使用方法,帮助你快速掌握这一工具。

pandas 的特点如下:

  • 高效的数据结构: SeriesDataFrame 提供了灵活的数据操作方式。
  • 强大的数据处理能力: 支持数据清洗、转换、分析和可视化。
  • 丰富的文件格式支持: 可以轻松读取和写入 CSV、Excel、JSON 等文件格式。

一、安装与导入

安装:

在开始使用 pandas 之前,需要先进行安装。可以通过以下命令安装:

pip install pandas

导入:

安装完成后,在代码中导入 pandas

import pandas as pd

二、核心数据结构

pandas 的主要数据结构是:Series(一维数据) 和 DataFrame(二维数据)。

2.1 Series 类型(一维数组)

Series 是一个一维数组,可以 存储任意类型的数据(如整数、字符串、浮点数等),并带有索引。

创建 Series:

  • 语法:pandas.Series([对象1, 对象2])
import pandas as pd# 从列表创建 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)

执行结果:

在这里插入图片描述

访问 Series:

# 通过索引访问数据
print(s[0]) # 输出 1# 通过位置访问数据
print(s.iloc[1]) # 输出 3

执行结果:

在这里插入图片描述

2.2 DataFrame 类型(二维数组)

DataFrame 是一个二维表格数据结构,类似于 Excel 表格或 SQL 表。它由行和列组成,每列可以是不同的数据类型。

创建 DataFrame:

# 从字典创建 DataFrame
data = {"Name": ["Alice", "Bob", "Charlie"],"Age": [25, 30, 35],"City": ["New York", "Los Angeles", "Chicago"]
}
df = pd.DataFrame(data)
print(df)

执行结果:

在这里插入图片描述

访问 DataFrame:

# 访问列
print(df["Name"]) # 输出 Name 列
print("==============")# 访问行
print(df.iloc[0]) # 输出第一行

执行结果:

在这里插入图片描述


三、数据读取与写入

pandas 支持从多种文件格式读取数据,并将数据写入这些格式。

3.1 读取 CSV 和 Excel 文件

读取 CSV 文件:

df = pd.read_csv("data.csv")
print(df.head())

csv内容如下:

"Name","Age","City"
Alice,25,New York
Bob,30,Los Angeles
Charlie,35,Chicago

执行结果:

在这里插入图片描述

读取 Excel 文件:

df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
print(df.head())

Excel 内容如下:

在这里插入图片描述

执行结果:

在这里插入图片描述

3.2 写入数据

写入 CSV 文件:

df.to_csv("output.csv", index=False)

写入 Excel 文件:

df.to_excel("output.xlsx", sheet_name="Sheet1", index=False)

四、数据清洗与处理

4.1 处理缺失值

# 检查缺失项
print(df.isnull())# 填充缺失值
df_filled = df.fillna(0) # 用 0 填充缺失值# 删除包含缺失值的行
df_dropped = df.ropna()

4.2 数据筛选

# 筛选 Age 大于 30 的行
df_filtered = df[df["Age"] > 30]
print(df_filtered)

执行结果:

在这里插入图片描述

4.3 数据排序

# 按 Age 列升序排序
df_sorted = df.sort_values(by="Age")
print(df_sorted)

执行结果:

在这里插入图片描述


五、数据分析

5.1 统计描述

# 查看数据的基本统计信息
print(df.describe())

执行结果:

在这里插入图片描述

5.2 分组聚合

# 按 City 分组并计算平均年龄
df_grouped = df.groupby("City")["Age"].mean()
print(df_grouped)

执行结果:

在这里插入图片描述

5.3 数据透视表

# 创建数据透视表
df_pivot = df.pivot_table(index="City", values="Age", aggfunc="mean")
print(df_pivot)

执行结果:

在这里插入图片描述


六、数据可视化

pandas 结合 matplotlib 可以方便地进行数据可视化。

安装命令:

pip install matplotlib

示例:绘制柱状图

import matplotlib.pyplot as plt# 绘制 Age 列地柱状图
df["Age"].plot(kind="bar")
plt.show()

执行结果:

在这里插入图片描述


七、高级功能

7.1 合并数据

# 合并两个 DataFrame
df1 = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
df2 = pd.DataFrame({"A": [5, 6], "B": [7, 8]})
df_merged = pd.concat([df1, df2])
print(df_merged)

执行结果:

在这里插入图片描述

7.2 处理时间序列

# 创建时间序列
dates = pd.date_range("20230101", periods=6)
df_time = pd.DataFrame({"Date": dates, "Value": [1, 2, 3, 4, 5, 6]})
print(df_time)

执行结果:

在这里插入图片描述

整理完毕,完结撒花~ 🌻





参考地址:

1.pandas用法-全网最详细教程,https://blog.csdn.net/Strive_For_Future/article/details/126710810

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

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

相关文章

【Python 数据结构 4.单向链表】

目录 一、单向链表的基本概念 1.单向链表的概念 2.单向链表的元素插入 元素插入的步骤 3.单向链表的元素删除 元素删除的步骤 4.单向链表的元素查找 元素查找的步骤 5.单向链表的元素索引 元素索引的步骤 6.单向链表的元素修改 元素修改的步骤 二、Python中的单向链表 ​编辑 三…

第1章:项目概述与环境搭建

第1章:项目概述与环境搭建 学习目标 了解YunChangAction灵感记录应用的整体架构和功能掌握SwiftUI开发环境的配置方法创建项目基础结构并理解文件组织方式实现应用的启动屏幕和基本主题设置 理论知识讲解 灵感记录应用概述 灵感记录应用是一种专门设计用来帮助…

2025.3.3总结

周一这天,我约了绩效教练,主要想了解专业类绩效的考核方式以及想知道如何拿到一个更好的绩效。其他的岗位并不是很清楚,但是专业类的岗位,目前采取绝对考核,管理层和专家岗采取相对考核,有末尾淘汰。 通过…

FastGPT 源码:基于 LLM 实现 Rerank (含Prompt)

文章目录 基于 LLM 实现 Rerank函数定义预期输出实现说明使用建议完整 Prompt 基于 LLM 实现 Rerank 下边通过设计 Prompt 让 LLM 实现重排序的功能。 函数定义 class LLMReranker:def __init__(self, llm_client):self.llm llm_clientdef rerank(self, query: str, docume…

LeetCode 1745.分割回文串 IV:动态规划(用III或II能直接秒)

【LetMeFly】1745.分割回文串 IV:动态规划(用III或II能直接秒) 力扣题目链接:https://leetcode.cn/problems/palindrome-partitioning-iv/ 给你一个字符串 s ,如果可以将它分割成三个 非空 回文子字符串,…

25年3月5日

1.思维导图 2.不太会 #include "head.h" int main(int argc, const char *argv[]) {int fdopen("../xiaoxin.bmp","O_RDONLY");if(fd-1)printf("open error");//大小struct stat st;if(stat("…

全球首创!微软发布医疗AI助手,终结手写病历时代

今天凌晨,微软发布了医疗界首个用于临床工作流程的AI助手Microsoft Dragon Copilot。 Dragon Copilot是基于语音文本的混合架构,能够将医生的语音或临床口述内容实时转换为文本。例如,医生可以通过语音输入患者的病历信息、医嘱或诊断结果&a…

[自动驾驶-传感器融合] 多激光雷达的外参标定

文章目录 引言外参标定原理ICP匹配示例参考文献 引言 多激光雷达系统通常用于自动驾驶或机器人,每个雷达的位置和姿态不同,需要将它们的数据统一到同一个坐标系下。多激光雷达外参标定的核心目标是通过计算不同雷达坐标系之间的刚性变换关系&#xff08…

Blazor-路由模板(下)

路由约束 类型约束 我们这里使用{id:int}限制路由&#xff0c;id为int类型&#xff0c;并且路由参数 id 对应的 Id 属性也必须是 int 类型。我们试试能否正常访问 page "/demoPage/{id:int}" <h3>demoPage</h3> <h2>路由参数Id&#xff1a;Id&l…

多线程-JUC源码

简介 JUC的核心是AQS&#xff0c;大部分锁都是基于AQS扩展出来的&#xff0c;这里先结合可重入锁和AQS&#xff0c;做一个讲解&#xff0c;其它的锁的实现方式也几乎类似 ReentrantLock和AQS AQS的基本结构 AQS&#xff0c;AbstractQueuedSynchronizer&#xff0c;抽象队列…

通过多线程获取RV1126的AAC码流

目录 一RV1126多线程获取音频编码AAC码流的流程 1.1AI模块的初始化并使能 1.2AENC模块的初始化 ​​​​​​​1.3绑定AI模块和AENC模块 ​​​​​​​1.4多线程获取每一帧AAC码流 ​​​​​​​1.5每个AAC码流添加ADTSHeader头部 ​​​​​​​1.6写入具体每一帧AAC的…

JVM常用概念之对象初始化的成本

在JVM常用概念之新对象实例化博客中我讲到了对象的实例化&#xff0c;主要包含分配&#xff08;TLAB&#xff09;、系统初始化、用户初始化&#xff0c;而我在JVM常用概念之线程本地分配缓冲区&#xff08;ThreadLocal Allocation Buffer&#xff0c;TLAB&#xff09;博客中也讲…

java后端开发day27--常用API(二)正则表达式爬虫

&#xff08;以下内容全部来自上述课程&#xff09; 1.正则表达式&#xff08;regex&#xff09; 可以校验字符串是否满足一定的规则&#xff0c;并用来校验数据格式的合法性。 1.作用 校验字符串是否满足规则在一段文本中查找满足要求的内容 2.内容定义 ps&#xff1a;一…

AI---DevOps常备工具(‌AI-Integrated DevOps Essential Tools)

AI---DevOps常备工具 技术领域正在迅速发展&#xff0c;随着我们步入 2025 年&#xff0c;有一点是明确的&#xff1a;人工智能&#xff08;AI&#xff09;不再只是一个流行词&#xff0c;它是每个 DevOps 工程师都需要掌握的工具。随着云环境的复杂性增加、对更快部署的需求以…

Pytorch中的主要函数

目录 一、torch.manual_seed(seed)二、torch.cuda.manual_seed(seed)三、torch.rand(*size, outNone, dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse)四、给大家写一个常用的自动选择电脑cuda 或者cpu 的小技巧五、torch.version.cuda&#xff1b;torch.bac…

Spring Boot中对接Twilio以实现发送验证码和验证短信码

Twilio介绍 Twilio是一家提供云通信服务的公司&#xff0c;旨在帮助开发者和企业通过简单的API实现各种通信功能。以下是Twilio的一些主要特点和服务介绍&#xff1a; 核心功能 短信服务&#xff08;SMS&#xff09;&#xff1a;允许用户通过API发送和接收短信&#xff0c;支…

VSCode详细安装步骤,适用于 Windows/macOS/Linux 系统

以下是 Visual Studio Code (VSCode) 的详细安装步骤&#xff0c;适用于 Windows/macOS/Linux 系统&#xff1a; VSCode 的详细安装步骤 一、Windows 系统安装1. 下载安装包2. 运行安装程序3. 验证安装 二、macOS 系统安装1. 方法一&#xff1a;官网下载安装包2. 方法二&#x…

基于PyTorch的深度学习3——基于autograd的反向传播

反向传播&#xff0c;可以理解为函数关系的反向传播。

设备管理系统功能与.NET+VUE(IVIEW)技术实现

在现代工业和商业环境中&#xff0c;设备管理系统&#xff08;Equipment Management System&#xff0c;简称EMS&#xff09;是确保设备高效运行和维护的关键工具。本文采用多租户设计的设备管理系统&#xff0c;基于.NET后端和VUE前端&#xff08;使用IVIEW UI框架&#xff09…

PHP之特性

在你有别的编程语言的基础下&#xff0c;你想学习PHP&#xff0c;可能要了解的PHP特有的东西。 定界符 使用<<<TT(可以是任意字符&#xff0c;但是不可以在别的地方使用过)和TT&#xff0c;会解析html格式和变量&#xff0c;如果在<<<后面加上单引号就会不…