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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过计费集成和警报监控 Elasticsearch Service 成本

作者:来自 Elastic Alexis Charveriat 使用 Elasticsearch 服务计费集成来跟踪、定制和提醒 Elasticsearch 服务费用。 监控和管理你的Elasticsearch服务(ESS)使用情况和成本对高效运营至关重要。 Elasticsearch服务计费集成提供了一种简化的…

cmake、CMakeLists.txt、make、ninja

文章目录 一、概念0.cmake官网1.什么是cmake2.为什么使用cmake3.CMakeLists.txt 二、CMakeLists.txt语法:如何编写CMakeLists.txt,语法详解(0)语法基本原则(1)project关键字(2)set关键字(3)message关键字(4)add_executable关键字(5)add_subdirectory关键…

DeepSeek本地接口调用(Ollama)

前言 上篇博文,我们通过Ollama搭建了本地的DeepSeek模型,本文主要是方便开发人员,如何通过代码或工具,通过API接口调用本地deepSeek模型 前文:DeepSeek-R1本地搭建_deepseek 本地部署-CSDN博客 注:本文不仅…

前端基础之浏览器本地存储

如我们在一些网站中&#xff0c;去进行数据搜索&#xff0c;在浏览器中是有一个对于的存储的&#xff0c;并且我们可以去手动进行value的增删操作 LocalStroage的使用 并且将浏览器关闭之后&#xff0c;数据也会保存&#xff0c;除非用户手动清理数据或是清空缓存 <!DOCTYPE…

2025 聚合易支付完整版PHP网站源码

源码介绍 2025 聚合易支付完整版PHP网站源码 PHP版本&#xff1a;PHP74 源码上传服务器&#xff0c;解压访问域名即可安装 安装完成后一定要设置伪静态 源码里面nginx.txt 就是伪静态 然后复制粘贴到伪静态里面保存即可 部分截图 源码获取 2025 聚合易支付完整版PHP网站源码…

Spring Boot 3 整合 MinIO 实现分布式文件存储

引言 文件存储已成为一个做任何应用都不可回避的需求。传统的单机文件存储方案在面对大规模数据和高并发访问时往往力不从心&#xff0c;而分布式文件存储系统则提供了更好的解决方案。本篇文章我将基于Spring Boot 3 为大家讲解如何基于MinIO来实现分布式文件存储。 分布式存…

easyExcel使用案例有代码

easyExcel 入门,完成web的excel文件创建和导出 easyExcel官网 EasyExcel 的主要特点如下&#xff1a; 1、高性能&#xff1a;EasyExcel 采用了异步导入导出的方式&#xff0c;并且底层使用 NIO 技术实现&#xff0c;使得其在导入导出大数据量时的性能非常高效。 2、易于使…

NVIDIA(英伟达) GPU 芯片架构发展史

GPU 性能的关键参数 CUDA 核心数量&#xff08;个&#xff09;&#xff1a;决定了 GPU 并行处理能力&#xff0c;在 AI 等并行计算类业务下&#xff0c;CUDA 核心越多性能越好。 显存容量&#xff08;GB&#xff09;&#xff1a;决定了 GPU 加载数据量的大小&#xff0c;在 AI…

FFMPEG利用H264+AAC合成TS文件

本次的DEMO是利用FFMPEG框架把H264文件和AAC文件合并成一个TS文件。这个DEMO很重要&#xff0c;因为在后面的推流项目中用到了这方面的技术。所以&#xff0c;大家最好把这个项目好好了解。 下面这个是流程图 从这个图我们能看出来&#xff0c;在main函数中我们主要做了这几步&…

获取Kernel32基地址

暴力搜索 32位在4G内存搜索有一定可行性&#xff0c;但是处理起来其实还是比较麻烦的&#xff0c;因为内存不可读会触发异常&#xff0c;需要对这些异常问题进行处理。 优化思路:缩小范围、增大搜索步长 (1)不优化&#xff0c;原始内存特征匹配&#xff0c;容易出错&#xf…

【 <一> 炼丹初探:JavaWeb 的起源与基础】之 Servlet 与 JSP 的协作:MVC 模式的雏形

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Servl…

如何在Github上面上传本地文件夹

前言 直接在GitHub网址上面上传文件夹是不行的&#xff0c;需要一层一层创建然后上传&#xff0c;而且文件的大小也有限制&#xff0c;使用Git进行上传更加方便和实用 1.下载和安装Git Git - Downloads 傻瓜式安装即可 2.获取密钥对 打开自己的Github&#xff0c;创建SSH密钥&…

软件高级架构师 - 软件工程

补充中 测试 测试类型 静态测试 动态测试 测试阶段 单元测试中&#xff0c;包含性能测试&#xff0c;如下&#xff1a; 集成测试中&#xff0c;包含以下&#xff1a; 维护 遗留系统处置 高水平低价值&#xff1a;采取集成 对于这类系统&#xff0c;采取 集成 的方式&…

初始提示词(Prompting)

理解LLM架构 在自然语言处理领域&#xff0c;LLM&#xff08;Large Memory Language Model&#xff0c;大型记忆语言模型&#xff09;架构代表了最前沿的技术。它结合了存储和检索外部知识的能力以及大规模语言模型的强大实力。 LLM架构由外部记忆模块、注意力机制和语…

react中如何使用使用react-redux进行数据管理

以上就是react-redux的使用过程&#xff0c;下面我们开始优化部分&#xff1a;当一个组件只有一个render生命周期&#xff0c;那么我们可以改写成一个无状态组件&#xff08;UI组件到无状态组件&#xff0c;性能提升更好&#xff09;

Vue 监听器的魔法之旅:@Watch(‘form.productId’) vs @Watch(‘value’) 大揭秘!✨

以下是一篇技术博客&#xff0c;主题围绕 Watch(form.productId) 和 Watch(value) 这两个 watcher 的功能、区别及使用场景&#xff0c;基于 compare-form.vue 的代码。准备好一起探索 Vue 监听器的魔法了吗&#xff1f;&#x1f604; &#x1f604; Vue 监听器的魔法之旅&…

SqlSugar 语法糖推荐方式

//方式1&#xff1a;var dd _repository._Db.Queryable<ConfigAggregateRoot, UserRoleEntity>((o, p) > o.Id p.Id).Select((o, p) > new{o.Id,o.Remark,p.RoleId,});//方式2&#xff1a;不推荐使用&#xff0c;建议优先使用 Lambda 表达式&#xff0c;因为它更…

数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解

目录 一.冒泡排序 二.堆排序 三.插入排序 四.选择排序 五.希尔排序 六.快速排序 1.Lomuto版本&#xff08;前后指针法&#xff09; 2.Lomuto版本的非递归算法 3.hoare版本&#xff08;左右指针法&#xff09; 4.挖坑法找分界值&#xff1a; 七.归并排序 八.计数排序…

?算法1-4 小A点菜

题目描述 不过 uim 由于买了一些书&#xff0c;口袋里只剩 M 元 (M≤10000)。 餐馆虽低端&#xff0c;但是菜品种类不少&#xff0c;有 N 种 (N≤100)&#xff0c;第 i 种卖 ai​ 元 (ai​≤1000)。由于是很低端的餐馆&#xff0c;所以每种菜只有一份。 小 A 奉行“不把钱吃…

Linux设备驱动开发之摄像头驱动移植(OV5640)

驱动移植 这里用的是NXP提供的原厂linux内核源码&#xff0c;目的是学习ov5640相关摄像头驱动的移植。如图&#xff0c;下面是linux源码自带的ov5640的驱动相关代码&#xff1a; 这个是ov5640相关头文件&#xff1a; 新建一个文件夹保存这些ov5640的驱动文件&#xff0c;打算在…