初识 Pandas:Python 数据分析的利器

在数据分析、数据清洗和可视化等领域,Python 无疑是最受欢迎的语言之一,而在 Python 的数据处理生态中,Pandas 是最核心、最基础的库之一。如果你接触数据分析、机器学习、金融建模,或者只是想处理一些 Excel 表格,那么学会 Pandas 是你不可避免的一步。

本文将系统介绍 Pandas 的基础知识,包括其核心数据结构、常用功能和实际应用示例,帮助你打下坚实的 Pandas 基础。


一、Pandas 是什么?

Pandas 是一个基于 NumPy 构建的数据分析库,由 Wes McKinney 在 2008 年开发。Pandas 的目标是提供灵活、高效、易于使用的数据结构和数据分析工具。

Pandas 的名字来源于“panel data”,即经济学中的“面板数据”。


二、Pandas 的两大核心数据结构

1. Series:一维标记数组

可以理解为带标签的一维数组,可以存储任意类型的数据(整数、浮点数、字符串等)。

import pandas as pds = pd.Series([1, 3, 5, None, 6])
print(s)

输出:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
dtype: float64

特点:

  • 自动生成索引(也可以自定义索引)

  • 支持缺失值(NaN)

  • 支持向量化操作

2. DataFrame:二维表格型数据结构

可以看作是由多个 Series 按列组成的二维表,类似 Excel 表格或者数据库表。

data = {'姓名': ['张三', '李四', '王五'],'年龄': [25, 30, 28],'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
print(df)

输出:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  28  广州

三、读取与保存数据

Pandas 支持多种格式的数据读写:

# 读取 CSV 文件
df = pd.read_csv('data.csv')# 写入 CSV 文件
df.to_csv('output.csv', index=False)# 读取 Excel 文件
df = pd.read_excel('data.xlsx')# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)# 读取 JSON 文件
df = pd.read_json('data.json')

四、常用操作

1. 查看数据

df.head()      # 查看前5行
df.tail(3)     # 查看后3行
df.info()      # 数据摘要信息
df.describe()  # 数据统计摘要

2. 选择数据

df['姓名']         # 选择一列
df[['姓名', '城市']]  # 选择多列
df.iloc[0]         # 按行号选择第1行
df.loc[1, '年龄']  # 按标签选取

3. 过滤数据

df[df['年龄'] > 27]  # 年龄大于27的行

4. 修改数据

df['年龄'] = df['年龄'] + 1  # 所有年龄加1
df.loc[0, '城市'] = '深圳'  # 修改单元格

五、缺失值处理

df.isnull()         # 判断缺失
df.dropna()         # 删除缺失值
df.fillna(0)        # 填充缺失值

六、分组与聚合(GroupBy)

grouped = df.groupby('城市')
print(grouped['年龄'].mean())  # 每个城市的平均年龄

七、合并与拼接

拼接(上下或左右)

pd.concat([df1, df2], axis=0)  # 纵向拼接
pd.concat([df1, df2], axis=1)  # 横向拼接

合并(类似 SQL 的 JOIN)

pd.merge(df1, df2, on='id', how='inner')

八、排序

df.sort_values(by='年龄')             # 按年龄升序
df.sort_values(by='年龄', ascending=False)  # 降序

九、应用函数

df['年龄'].apply(lambda x: x + 10)  # 每个年龄加10
df.applymap(str)  # 对整个 DataFrame 应用函数

十、实际案例:读取 CSV 并统计分析

假设我们有一个名为 sales.csv 的销售数据文件:

日期,销售额,地区
2023-01-01,1000,北京
2023-01-02,1200,上海
2023-01-03,800,广州
df = pd.read_csv('sales.csv')
print(df.groupby('地区')['销售额'].sum())

输出:

地区
上海    1200
北京    1000
广州     800
Name: 销售额, dtype: int64

结语

Pandas 是数据处理的瑞士军刀,无论你是分析师、数据科学家,还是工程师,都值得深入学习。本文只是入门介绍,实际应用中 Pandas 的功能远不止于此,比如时间序列分析、多重索引、高性能数据读取等。

下一步建议深入学习:

  • Pandas 官方文档:pandas documentation — pandas 2.2.3 documentation

  • 结合 Matplotlib/Seaborn 进行可视化

  • 实战项目练习,例如 Kaggle 竞赛

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

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

相关文章

SpringBoot项目使用POI-TL动态生成Word文档

近期项目工作需要动态生成Word文档的需求,特意调研了动态生成Word的技术方案。主要有以下两种: 第一种是FreeMarker模板来进行填充;第二种是POI-TL技术使用Word模板来进行填充; 以下是关于POI-TL的官方介绍 重点关注&#xff1…

fakeroot 在没有超级用户权限的情况下模拟文件系统的超级用户行为

fakeroot 是一个在 Linux 环境中使用的工具,它允许用户在没有超级用户权限的情况下模拟文件系统的超级用户行为。它是一个在 Linux 环境中广泛使用的工具,通常包含在大多数 Linux 发行版的软件仓库中。‌ 主要功能 ‌模拟 root 权限‌:fake…

Spring Spring Boot 常用注解整理

Spring & Spring Boot 常用注解整理 先理解核心概念:什么是注解(Annotation)?第一部分:IOC(控制反转)和 DI(依赖注入)1. Component2. Service, Repository, Controll…

AIGC与数字媒体实验室解决方案分享

第1部分 概述 1.1 建设目标 1.深度融合AIGC技术,培养能够驾驭新质生产力的数字媒体人才 通过引入前沿的AIGC技术,确保学生能够接触到最先进的人工智能应用。教学内容理论和实践结合,让学生在实际操作中熟练掌握AIGC工具,生成高…

讯联云库项目开发日志(二)AOP参数拦截

目录 利用AOP实现参数拦截: 一、​​HTTP请求进入Controller​(发送邮件验证码) 二、AOP切面触发 1. 切面拦截(GlobalOperactionAspect.class) method.getAnnotation()​​ null interceptor 判断​​ 2.参数校验注解 3. 参…

用OBD部署OceanBase社区版的避坑指南

以下是用OBD黑屏部署 OceanBase社区版时容易碰到的几个问题及解决思路,供大家参考。 一、 遇坑步骤:用yaml文件部署集群: obd cluster deploy obtest -c mini-single-example.yaml 报错: Package oceanbase-ce-4.2.1.8-108000…

无锡哲讯科技:引领芯片封装SAP系统的智能化革命

芯片封装行业的数字化转型 在全球半导体产业高速发展的今天,芯片封装作为产业链的关键环节,直接影响着芯片的性能、可靠性和成本。随着5G、人工智能、物联网等技术的普及,市场对芯片的需求激增,封装企业面临着效率提升、良率优…

从海洋生物找灵感:造个机器人RoboPteropod,它能在水下干啥?

大家好!在如今人类对水下环境探索不断深入的时代,从水下考古到珊瑚礁考察,各种任务都离不开水下机器人的助力。但传统水下机器人尺寸较大,在狭窄的水下空间施展不开。今天,我们就来认识一款受海洋小生物启发而设计的仿…

区块链blog1__合作与信任

🍂我们的世界 🌿不是孤立的,而是网络化的 如果是单独孤立的系统,无需共识,而我们的社会是网络结构,即结点间不是孤立的 🌿网络化的原因 而目前并未发现这样的理想孤立系统,即现实中…

Linux服务之lvs+keepalived nginx+keepalived负载均衡实例解析

目录 一.LVSKeepAlived高可用负载均衡集群的部署 二.NginxKeepAlived高可用负载均衡集群的部署 一.LVSKeepAlived高可用负载均衡集群的部署 实验环境 主keepalived:192.168.181.10 lvs (7-1) 备keepalived:192.168.181.10…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ |搭建项目框架

🖤 一个专注于「Vue3 TailwindCSS」的 50 天极简开发挑战,探索组件边界,打磨技术锋芒。 🎉 欢迎来到 50 个小项目的第一天!今天我们将从零开始搭建一个 Vue3 项目,并引入 Tailwind CSS v4,为后…

Android 中 网络图片加载库 Glide 简介

Glide 是一个功能强大且广泛使用的图片加载库,适用于 Android 应用程序。它提供了简单易用的 API,用于从网络、本地存储或资源中加载图片,并支持图片的缓存、转换、占位图、动画等功能。 一、Glide 主要特点 简单易用 提供简洁的 API,一行代码即可加载图片。 支持多种数据…

07 web 自动化之 Unittest 应用:测试报告装饰器断言

文章目录 一、常见的第三方库结合 unittest 生产 html 格式测试报告1、HtmlTestRunner2、BeatifulReport 二、装饰器 unittest.skip 强制跳过&条件跳过三、unittest的常用断言方法 一、常见的第三方库结合 unittest 生产 html 格式测试报告 1、HtmlTestRunner 官网下载 …

【Python 面向对象】

Python 的面向对象编程(OOP)通过类(Class)和对象(Object)实现代码结构化,支持封装、继承和多态三大特性。以下是系统化指南: 一、类与对象基础 1. 定义类 class Dog:# 类属性&…

STM32F103_LL库+寄存器学习笔记23 - PWM波形输出及软件方式调整周期与占空比

导言 脉宽调制(PWM)是 STM32 定时器最常用的输出模式之一,广泛应用于电机驱动、LED 调光、伺服控制和功率管理等场景。本篇文章将以 TIM5 为例,从寄存器层面深入剖析 PWM 输出的原理与实现步骤。通过本篇博客,你不仅能…

堆(Heap)

1. 堆(Heap) 1.1. Python实现堆的插入、堆顶删除和排序 class MaxHeap:def __init__(self):# 初始化空堆,使用列表表示self.heap []def insert(self, val):# 插入元素并执行上浮self.heap.append(val)self._sift_up(len(self.heap) - 1)de…

Spring类

BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如: class,表示Bean类型scope,表示Bean作用域,单例或原型等lazyInit:表示Bean是否是懒加载initMeth…

在vue中this.$emit有哪些作用,事件监控具体含义,以及这些子组件能封装哪些功能组件

this.$emit 的作用 this.$emit 的作用是触发一个自定义事件,并将数据传递给父组件。父组件可以通过 v-on(或 )监听这个事件,并在事件触发时执行相应的处理函数。 this.content 的作用 this.content 是子组件的 props&#xff0…

前端流行框架Vue3教程:16. 组件事件配合`v-model`使用

组件事件配合v-model使用 如果是用户输入,我们希望在获取数据的同时发送数据配合v-model 来使用,帮助理解组件间的通信和数据绑定。 🧩 第一步:创建子组件(SearchComponent.vue) 这个组件用于处理用户的搜…

《Navicat之外的新选择:实测支持国产数据库的SQLynx核心功能解析》

数据库工具生态的新变量 在数据库管理工具领域,Navicat长期占据开发者心智。但随着国产数据库崛起和技术信创需求,开发者对工具的兼容性、轻量化和本土化适配提出了更高要求。近期体验了一款名为SQLynx的国产数据库管理工具(麦聪旗下产品&am…