《Python基础》之Pandas库

目录

一、简介

二、Pandas的核心数据结构

1、Series

2、DataFrame

三、数据读取与写入

1、数据读取

 2、数据写入

四、数据清洗与处理

1、处理缺失值

2、处理重复值

3、数据转换

五、数据分析与可视化

1、统计描述

2、分组聚合

3、数据可视化

六、高级技巧

1、时间序列分析

2、数据透视表

七、总结


在数据科学的世界里,Python 的 Pandas 库无疑是一把瑞士军刀。无论你是数据分析师、数据科学家,还是机器学习工程师,Pandas 都是你不可或缺的工具。本文将带你深入了解 Pandas 库的核心功能、常用操作以及一些高级技巧,帮助你更好地利用这个强大的工具。

一、简介

Pandas 是一个开源的数据处理和分析库,由 Wes McKinney 在 2008 年创建。它建立在 NumPy 库之上,提供了高效、灵活的数据结构,使得数据操作和分析变得更加简单和直观。Pandas 主要的数据结构是 Series 和 DataFrame,分别用于处理一维和二维的数据。

二、Pandas的核心数据结构

1、Series

Series 是 Pandas 中的一维数组,类似于带标签的数组。每个元素都有一个标签(索引),可以通过标签访问数据。

import pandas as pd# 创建一个 Series
s = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'd', 'e'])
print(s)

2、DataFrame

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

# 创建一个 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie'],'age': [25, 30, 35],'city': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

 

三、数据读取与写入

Pandas 支持从多种数据源读取数据,包括 CSV、Excel、SQL 数据库、JSON 等。同样,它也支持将数据写入这些格式。

1、数据读取

# 从 CSV 文件读取数据
df = pd.read_csv('data.csv')# 从 Excel 文件读取数据
df = pd.read_excel('data.xlsx')# 从 SQL 数据库读取数据
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table_name', conn)

 2、数据写入

# 将数据写入 CSV 文件
df.to_csv('output.csv', index=False)# 将数据写入 Excel 文件
df.to_excel('output.xlsx', index=False)# 将数据写入 SQL 数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

四、数据清洗与处理

数据清洗是数据分析过程中非常重要的一步。Pandas 提供了丰富的功能来处理缺失值、重复值、异常值等。

1、处理缺失值

# 检查缺失值
print(df.isnull().sum())# 删除包含缺失值的行
df_cleaned = df.dropna()# 填充缺失值
df_filled = df.fillna(method='ffill')  # 前向填充
df_filled = df.fillna(method='bfill')  # 后向填充
df_filled = df.fillna(df.mean())      # 用均值填充

2、处理重复值

# 检查重复值
print(df.duplicated().sum())# 删除重复值
df_cleaned = df.drop_duplicates()

3、数据转换

# 数据类型转换
df['age'] = df['age'].astype(float)# 数据标准化
df['age'] = (df['age'] - df['age'].mean()) / df['age'].std()

五、数据分析与可视化

Pandas 提供了丰富的数据分析功能,包括统计描述、分组聚合、透视表等。结合 Matplotlib 和 Seaborn 等可视化库,可以轻松创建各种图表。

1、统计描述

# 统计描述
print(df.describe())# 计算相关系数
print(df.corr())

2、分组聚合

# 按城市分组并计算平均年龄
grouped = df.groupby('city')['age'].mean()
print(grouped)

3、数据可视化

import matplotlib.pyplot as plt
import seaborn as sns# 绘制柱状图
df['age'].plot(kind='bar')
plt.show()# 绘制散点图
sns.scatterplot(x='age', y='city', data=df)
plt.show()

六、高级技巧

1、时间序列分析

Pandas 提供了强大的时间序列处理功能,支持日期解析、时间差计算、重采样等。

# 创建时间序列数据
dates = pd.date_range('20230101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))# 重采样
df_monthly = df.resample('M').mean()
print(df_monthly)

2、数据透视表

数据透视表是数据分析中非常有用的工具,Pandas 提供了 pivot_table 函数来创建透视表。

# 创建数据透视表
pivot_table = pd.pivot_table(df, values='age', index='city', columns='name', aggfunc='mean')
print(pivot_table)

七、总结

Pandas 是数据科学领域中不可或缺的工具,它提供了丰富的功能来处理、分析和可视化数据。无论你是初学者还是经验丰富的数据科学家,掌握 Pandas 都将极大地提升你的工作效率。希望本文能帮助你更好地理解和使用 Pandas,开启你的数据科学之旅。

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

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

相关文章

设计模式 更新ing

设计模式 1、六大原则1.1 单一设计原则 SRP1.2 开闭原则1.3 里氏替换原则1.4 迪米特法则1.5 接口隔离原则1.6 依赖倒置原则 2、工厂模式 1、六大原则 1.1 单一设计原则 SRP 一个类应该只有一个变化的原因 比如一个视频软件,区分不同的用户级别 包括访客&#xff0…

c++预编译头文件

文章目录 c预编译头文件1.使用g编译预编译头文件2.使用visual studio进行预编译头文件2.1visual studio如何设置输出预处理文件(.i文件)2.2visual studio 如何设置预编译(初始创建空项目的情况下)2.3 visual studio打开输出编译时…

SeggisV1.0 遥感影像分割软件【源代码】讲解

在此基础上进行二次开发,开发自己的软件,例如:【1】无人机及个人私有影像识别【2】离线使用【3】变化监测模型集成【4】个人私有分割模型集成等等,不管是您用来个人学习还是公司研发需求,都相当合适,包您满…

echarts地图立体效果,echarts地图点击事件,echarts地图自定义自定义tooltip

一.地图立体效果 方法1:两层地图叠加 实现原理:geo数组中放入两个地图对象,通过修改zlevel属性以及top,left,right,bottom形成视觉差 配置项参考如下代码: geo: [{zlevel: 2,top: 96,map: map,itemStyle: {color: #091A51ee,opacity: 1,borderWidth: 2,borderColor: #16BAFA…

HTML 快速上手

目录 一. HTML概念 二. HTML标签 1. 标题标签 2. 段落标签 3. 换行标签 4. 图片标签 5. 超链接标签 6. 表格标签 7. 表单标签 7.1 form 标签 7.2 input 标签 (1) 文本框 (2) 单选框 (3) 密码框 (4) 复选框 (5) 普通按钮 (6) 提交按钮 8. select标签 9. 无语义…

Linux 各个目录作用

刚毕业的时候学习Linux基础知识,发现了一份特别好的文档快乐的 Linux 命令行,翻译者是happypeter,作者当年也在慕课录制了react等前端相关的视频,通俗易懂,十分推荐 关于Linux的目录,多数博客已有详细介绍…

Fastapi + vue3 自动化测试平台---移动端App自动化篇

概述 好久写文章了,专注于新框架,新UI界面的实践,废话不多说,开搞 技术架构 后端: Fastapi Airtest multiprocessing 前端: 基于 Vue3、Vite、TypeScript、Pinia、Pinia持久化插件、Unocss 和 Elemen…

详解Vue设计模式

详解 vue 设计模式 ​ Vue.js 作为一个流行的前端框架,拥有许多设计模式,这些设计模式帮助开发者更好地组织和管理代码,提升代码的可维护性、可扩展性和可读性。Vue 设计模式主要体现在以下几个方面: 1. 组件化设计模式 (Compon…

了解Linux —— 理解其中的权限

前言 在了解Linux权限之前,先来探讨我们使用的shell 命令它到底是什么? Linux 是一个操作系统,我们称其为内核(kernel) ,正常情况下,我们一般用户操作并不是去直接使用内核,而是通过kernel 的外壳程序&…

WebHID API演示Demo教程:设备列表,设备连接,数据读写

1. 简介 WebHID API允许网页应用直接与HID(人机接口设备)进行通信。本教程将演示如何创建一个基础的WebHID应用,实现以下功能: 显示和获取HID设备列表连接/断开HID设备读取设备数据向设备发送数据 2. 兼容性和前提条件 2.1 浏览…

中安证件OCR识别技术助力鸿蒙生态:智能化证件识别新体验

在数字化和智能化的浪潮中,伴随国产化战略的深入推进,国产操作系统和软件生态的建设逐渐走向成熟。鸿蒙操作系统(HarmonyOS Next)作为华为推出的重要操作系统,凭借其开放、灵活和高效的特点,正在加速在多个…

PDF与PDF/A的区别及如何使用Python实现它们之间的相互转换

目录 概述 PDF/A 是什么?与 PDF 有何不同? 用于实现 PDF 与 PDF/A 相互转换的 Python 库 Python 实现 PDF 转 PDF/A 将 PDF 转换为 PDF/A-1a 将 PDF 转换为 PDF/A-1b 将 PDF 转换为 PDF/A-2a 将 PDF 转换为 PDF/A-2b 将 PDF 转换为 PDF/A-3a 将…

面向对象(二)——类和对象(上)

1 类的定义 做了关于对象的很多介绍,终于进入代码编写阶段。 本节中重点介绍类和对象的基本定义,属性和方法的基本使用方式。 【示例】类的定义方式 // 每一个源文件必须有且只有一个public class,并且类名和文件名保持一致! …

【HarmonyOS】鸿蒙应用地理位置获取,地理名称获取

【HarmonyOS】鸿蒙应用地理位置获取,地理名称获取 一、前言 首先要理解地理专有名词,当我们从系统获取地理位置,一般会拿到地理坐标,是一串数字,并不是地理位置名称。例如 116.2305,33.568。 这些数字坐…

关于数据库数据国际化方案

方案一:每个表设计一个翻译表 数据库国际化的应用场景用到的比较少,主要用于对数据库的具体数据进行翻译,在需要有大量数据翻译的场景下使用,举个例子来说,力扣题目的中英文切换。参考方案可见: https://b…

「Mac畅玩鸿蒙与硬件37」UI互动应用篇14 - 随机颜色变化器

本篇将带你实现一个随机颜色变化器应用。用户点击“随机颜色”按钮后,界面背景会随机变化为淡色系颜色,同时显示当前的颜色代码,页面还会展示一只猫咪图片作为装饰,提升趣味性。 关键词 UI互动应用随机颜色生成状态管理用户交互…

跟着官方文档快速入门RAGAS

官网: Ragas Ragas(Retrieval-Augmented Generation, RAG)是一个基于简单手写提示的评估框架,通过这些提示全自动地衡量答案的准确性、 相关性和上下文相关性。这种评估方法不需要访问人工注释的数据集或参考答案,使得评估过程更…

掌握 Spring Boot 中的缓存:技术和最佳实践

缓存是一种用于将经常访问的数据临时存储在更快的存储层(通常在内存中)中的技术,以便可以更快地满足未来对该数据的请求,从而提高应用程序的性能和效率。在 Spring Boot 中,缓存是一种简单而强大的方法,可以…

我谈冈萨雷斯对频域滤波的误解——快速卷积与频域滤波之间的关系

在Rafael Gonzalez和Richard Woods所著的《数字图像处理》中,Gonzalez对频域滤波是有误解的,在频域设计滤波器不是非得图像和滤波器的尺寸相同,不是非得在频域通过乘积实现。相反,FIR滤波器设计都是构造空域脉冲响应。一般的原则是…

AI高中数学教学视频生成技术:利用通义千问、MathGPT、视频多模态大模型,语音大模型,将4个模型融合 ,生成高中数学教学视频,并给出实施方案。

大家好,我是微学AI,今天给大家介绍一下AI高中数学教学视频生成技术:利用通义千问、MathGPT、视频多模态大模型,语音大模型,将4个模型融合 ,生成高中数学教学视频,并给出实施方案。本文利用专家模…