《Python基础》之Pandas库

news2024/12/26 21:01:21

目录

一、简介

二、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.coloradmin.cn/o/2253226.html

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

相关文章

网络安全-夜神模拟器如何通过虚拟机的Burp Suite代理应用程序接口

第一步、查看虚拟机的IP地址 我们可以通过ifconfig命令来查看虚拟机的IP地址,如下图所示。 第二步、在Burp Suite上设置代理 打开虚拟机上的Burp Suite,进入到代理模块中,进入到代理设置中心 打开系统代理设置中心之后,将我们虚拟机的地址添加到上面,作为新的代理。 第…

PyTorch 2.5.1: Bugs修复版发布

一,前言 在深度学习框架的不断迭代中,PyTorch 社区始终致力于提供更稳定、更高效的工具。最近,PyTorch 2.5.1 版本正式发布,这个版本主要针对 2.5.0 中发现的问题进行了修复,以提升用户体验。 二,PyTorch 2…

SpringAi整合大模型(进阶版)

进阶版是在基础的对话版之上进行新增功能。 如果还没弄出基础版的,请参考 https://blog.csdn.net/weixin_54925172/article/details/144143523?sharetypeblogdetail&sharerId144143523&sharereferPC&sharesourceweixin_54925172&spm1011.2480.30…

Python实现网站资源批量下载【可转成exe程序运行】

Python实现网站资源批量下载【可转成exe程序运行】 背景介绍解决方案转为exe可执行程序简单点说详细了解下 声明 背景介绍 发现 宣讲家网 的PPT很好,作为学习资料使用很有价值,所以想下载网站的PPT课件到本地,但是由于网站限制,一…

CSS函数

目录 一、背景 二、函数的概念 1. var()函数 2、calc()函数 三、总结 一、背景 今天我们就来说一说,常用的两个css自定义属性,也称为css函数。本文中就成为css函数。先来看一下官方对其的定义。 自定义属性(有时候也被称作CSS 变量或者级…

UG NX二次开发(C#)-选择对象居中(不是全部居中)

文章目录 1、前言2、什么是对象居中3、功能实现代码3.1 对象居中3.1 恢复原视图1、前言 在UG NX二次开发过程中,我们经常会用到居中以查看完整的模型,但是对于如果想展示某些对象,而不是全部模型时,那么我们就想将选择的对象(如体对象)居中查看,当查看结束后还能恢复到…

动态规划-----路径问题

动态规划-----路径问题 下降最小路径和1:状态表示2:状态转移方程3 初始化4 填表顺序5 返回值6 代码实现 总结: 下降最小路径和 1:状态表示 假设:用dp[i][j]表示:到达[i,j]的最小路径 2:状态转…

[C++设计模式] 为什么需要设计模式?

文章目录 什么是设计模式?为什么需要设计模式?GOF 设计模式再次理解面向对象软件设计固有的复杂性软件设计复杂性的根本原因如何解决复杂性?分解抽象 结构化 VS 面向对象(封装)结构化设计代码示例:面向对象设计代码示例&#xff1…

级联树结构TreeSelect和上级反查

接口返回结构 前端展示格式 前端组件 <template><div ><el-scrollbar height"70vh"><el-tree :data"deptOptions" :props"{ label: label, children: children }" :expand-on-click-node"false":filter-node-me…

Figma入门-自动布局

Figma入门-自动布局 前言 在之前的工作中&#xff0c;大家的原型图都是使用 Axure 制作的&#xff0c;印象中 Figma 一直是个专业设计软件。 最近&#xff0c;很多产品朋友告诉我&#xff0c;很多原型图都开始用Figma制作了&#xff0c;并且很多组件都是内置的&#xff0c;对…

【Unity基础】使用InputSystem实现物体跳跃

要在Unity中使用 InputSystem 实现小球按空格键跳起的效果&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装 InputSystem 包 首先&#xff0c;确保你已经安装了 Input System 包。你可以通过以下步骤安装&#xff1a; 打开 Unity 编辑器&#xff0c;点击菜单 Window -…

【ArkTS】使用AVRecorder录制音频 --内附录音机开发详细代码

系列文章目录 【ArkTS】关于ForEach的第三个参数键值 【ArkTS】“一篇带你读懂ForEach和LazyForEach” 【小白拓展】 【ArkTS】“一篇带你掌握TaskPool与Worker两种多线程并发方案” 【ArkTS】 一篇带你掌握“语音转文字技术” --内附详细代码 【ArkTS】技能提高–“用户授权”…

一种多功能调试工具设计方案开源

一种多功能调试工具设计方案开源 设计初衷设计方案具体实现HUB芯片采用沁恒微CH339W。TF卡功能网口功能SPI功能IIC功能JTAG功能下行USB接口 安路FPGA烧录器功能Xilinx FPGA烧录器功能Jlink OB功能串口功能RS232串口RS485和RS422串口自适应接口 CAN功能烧录器功能 目前进度后续计…

浏览器的事件循环机制

浏览器和Node的事件循环机制 引言浏览器的事件循环机制 引言 由于JS是单线程的脚本语言&#xff0c;所以在同一时间只能做一件事情&#xff0c;当遇到多个任务时&#xff0c;我们不可能一直等待任务完成&#xff0c;这会造成巨大的资源浪费。为了协调时间&#xff0c;用户交互…

Zabbix添加防火墙温度监控值实战

我们在Zabbix监控系统会监控诸如Server、network device、application等实例&#xff0c;通常我们在监控某个具体产品时&#xff0c;我们会找到具体的监控模板&#xff0c;在设备添加到平台以后&#xff0c;将模板链接到该设备&#xff0c;但很多时候我们企业内部的设备是没有标…

【k8s】创建基于sa的token的kubeconfig

需求 创建一个基于sa的token的kubeconfig文件&#xff0c;并用这个文件来访问集群。 具体创建sa 和sa的token请参考文章: 【k8s】给ServiceAccount 创建关联的 Secrets-CSDN博客 创建sa apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:namespace: jtkjdevnam…

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

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

Apache Doris 现行版本 Docker-Compose 运行教程

特别注意&#xff01;Doris On Docker 部署方式仅限于开发环境或者功能测试环境&#xff0c;不建议生产环境部署&#xff01; 如有生产环境或性能测试集群部署诉求&#xff0c;请使用裸机/虚机部署或K8S Operator部署方案&#xff01; 原文阅读&#xff1a;Apache Doris 现行版…

Docker的彻底删除与重新安装(ubuntu22.04)

Docker的彻底删除与重新安装&#xff08;ubuntu22.04&#xff09; 一、首先我们彻底删除Docker1、删除docker及安装时自动安装的所有包2、删除无用的相关的配置文件3、删除相关插件4、删除docker的相关配置和目录 二、重新安装1、添加 Docker 的官方 GPG 密钥&#xff1a;2、将…

Nginx学习-安装以及基本的使用

一、背景 Nginx是一个很强大的高性能Web和反向代理服务&#xff0c;也是一种轻量级的Web服务器&#xff0c;可以作为独立的服务器部署网站&#xff0c;应用非常广泛&#xff0c;特别是现在前后端分离的情况下。而在开发过程中&#xff0c;我们常常需要在window系统下使用Nginx…