的记忆:pandas(实在会忘记,就看作是一个 Excel 表格,或者是 SQL 表,或者是字典的字典。)

pandas 是一个开源的 Python 数据分析库,它提供了快速、灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的“快速分析、清洗和转换”变得既简单又直观。pandas 非常适合于数据清洗和转换、数据分析和建模等任务。以下是 pandas 的基本概念和主要特征:

基本概念

  1. DataFrame
    • DataFrame 是 pandas 提供的一个二维的、大小可变的、可以存储多种类型数据的表格型数据结构。它既有行索引也有列索引,可以被看作是一个 Excel 表格,或者是 SQL 表,或者是字典的字典。
    • DataFrame 中的数据以行列的形式存储,其中行由索引标识,列由列名标识。
  2. Series
    • Series 是一个一维数组对象,能够保存任何数据类型(整数、字符串、浮点数、Python 对象等)。它有一个标签与之关联,可以看作是 DataFrame 的一列。

主要特征

  1. 灵活的数据结构
    • pandas 提供了 DataFrame 和 Series 两种灵活的数据结构,可以方便地处理标记数据和关系数据。
  2. 强大的数据操作能力
    • 提供了大量用于数据清洗、转换、筛选、分组、聚合等操作的函数和方法。
    • 支持布尔索引、标签索引、位置索引等多种索引方式。
  3. 集成数据缺失处理
    • pandas 提供了一套丰富的功能来处理含有缺失值的数据,如填充缺失值、删除含有缺失值的行等。
  4. 数据合并和连接
    • pandas 可以方便地将多个 DataFrame 或 Series 合并或连接在一起,支持多种合并策略(如内连接、外连接等)。
  5. 时间序列处理
    • pandas 提供了强大的时间序列处理功能,可以轻松地进行日期范围生成、日期偏移、时间频率转换等操作。
  6. 数据可视化集成
    • pandas 可以与 matplotlib、seaborn 等可视化库无缝集成,方便地将数据可视化。
  7. 高性能
    • pandas 的底层实现采用了 NumPy 库,因此具有高效的数值计算性能。
    • pandas 还提供了多种优化手段,如内存优化、计算优化等,确保在处理大规模数据时依然保持高性能。
  8. 易用性
    • pandas 提供了丰富的 API 和文档,使得用户能够轻松地学习和使用。
    • pandas 的语法直观易懂,与 Python 的风格保持一致,降低了学习成本。

通过结合以上这些特点,pandas 成为了数据分析师和数据科学家不可或缺的工具之一。


 简单接触一些:

pd.concat()
这个函数用于将多个pandas对象(如DataFrame或Series)沿着一条特定的轴拼接起来。

import pandas as pd  # 创建两个简单的DataFrame  
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})  
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})  # 使用pd.concat按行拼接  
result = pd.concat([df1, df2])  
print(result)  
print("______________________________")
# 按列拼接  
result_col = pd.concat([df1, df2], axis=1)  
print(result_col)

pd.melt()
这个函数用于将DataFrame中的列转换为行格式,常用于数据重塑。

 

pd.get_dummies()
这个函数用于将分类变量转换为哑变量(dummy variables,或称为独热编码)。

 

DataFrame.groupby()
DataFrame的groupby方法用于根据一个或多个列对数据进行分组,并对每个组执行某些操作(如聚合)。

df = pd.DataFrame({  'A': ['foo', 'foo', 'foo', 'bar', 'bar'],  'B': ['one', 'one', 'two', 'two', 'one'],  'C': ['small', 'large', 'large', 'small', 'small'],  'D': [1, 2, 2, 3, 3],  'E': [2, 4, 5, 5, 6]  
})  # 按列'A'分组,并计算每组的'D'列的平均值  
grouped = df.groupby('A')['D'].mean()  
print(grouped)

 

DataFrame.merge()
DataFrame的merge方法用于根据一个或多个键将两个DataFrame合并在一起。

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],  'A': ['A0', 'A1', 'A2', 'A3'],  'B': ['B0', 'B1', 'B2', 'B3']})  right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],  'C': ['C0', 'C1', 'C2', 'C3'],  'D': ['D0', 'D1', 'D2', 'D3']})  # 按'key'列进行内连接  
merged = left.merge(right, on='key')  
print(merged)

  常用的函数和方法示例

数据导入与导出

pd.read_csv()
用于读取CSV文件并转换为DataFrame。

df = pd.read_csv('data.csv')

 DataFrame.to_csv()

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

数据查看与描述

DataFrame.head() 和 DataFrame.tail()
查看DataFrame的前几行或后几行

# 查看前3行  
print(df.head(3))  # 查看后2行  
print(df.tail(2))

DataFrame.info()
打印DataFrame的简要摘要信息,包括每列的非空值数量、数据类型等。

df.info()

DataFrame.describe()

生成描述性统计信息,包括计数、均值、标准差、最小值、25%、50%、75%分位数和最大值,主要针对数值型列。

df.describe()

数据选择与过滤

DataFrame.loc[] 和 DataFrame.iloc[]
基于标签或整数位置选择数据。

# 使用标签选择数据  
print(df.loc[0:2, 'A':'B'])  # 使用整数位置选择数据  
print(df.iloc[0:2, 0:2])

DataFrame.filter()
基于列标签选择列。

filtered = df.filter(like='A', axis=1)

 DataFrame.query()

使用查询字符串进行数据过滤。

filtered = df.query('A > 1 & B < 4')

 

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

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

相关文章

简化图卷积 笔记

1 Title Simplifying Graph Convolutional Networks&#xff08;Felix Wu、Tianyi Zhang、Amauri Holanda de、 Souza Jr、Christopher Fifty、Tao Yu、Kilian Q. Weinberger&#xff09;【ICML 2019】 2 Conclusion This paper proposes a simplified graph convolutional m…

第100+6步 ChatGPT文献复现:ARIMAX预测新冠

基于WIN10的64位系统演示 一、写在前面 我们继续来解读ARIMAX模型文章&#xff0c;这一轮带来的是&#xff1a; 《PLoS One》杂志的2022年一篇题目为《A data-driven eXtreme gradient boosting machine learning model to predict COVID-19 transmission with meteorologic…

【docker】拉取人大金仓KingbaseES数据库镜像速度很慢问题

作为一种新兴的虚拟化方式&#xff0c;Docker 跟传统的虚拟化方式相比具有众多的优势。 对于学习新技术、快速搭建实验环境等是很不错的选择。优势大致总结如下&#xff1a; 1.镜像拉取速度对比 速度前后对比&#xff0c;提升10倍不止&#xff0c;很快将镜像文件下载至本地。 …

探索设计模式的魅力:主从模式与AI大模型的结合-开启机器学习新纪元

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 ✨欢迎加入探索主从模式与AI大模型之旅✨ &#x1f31f;Hey, tech enthusiasts! 你是否还在追…

蓝桥杯:日期问题(我的绝望题)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;每日一练 &#x1f337;追光的人&#xff0c;终会万丈光芒 目录 前言&#xff1a; &#x1f337;1.问题描述&#xff1a; 1.问题描述&#xff1a; 2.输入格式&#xff1a; 3.输出格式&#…

IP组播简介

定义 作为IP传输三种方式之一&#xff0c;IP组播通信指的是IP报文从一个源发出&#xff0c;被转发到一组特定的接收者。相较于传统的单播和广播&#xff0c;IP组播可以有效地节约网络带宽、降低网络负载&#xff0c;避免广播堵塞带来的诸如摄像头花屏&#xff0c;视频马赛克等…

【数据结构(邓俊辉)学习笔记】向量03——常规向量

文章目录 0.概述1.元素访问2.置乱器3.判等器与比较器4.无序查找4.1 判等器4.2 顺序查找4.3 实现4.4 复杂度 5. 插入5.1 算法实现5.2 复杂度分析 6. 删除6.1 区间删除6.2 单元删除6.3 复杂度 7. 唯一化7.1 实现7.2 正确性7.3 复杂度 8. 遍历8.1 实现8.2 复杂度 9. 总结 0.概述 …

Pycharm代码规范与代码格式化插件安装

给大家分享两个PyCharm编辑器的插件&#xff0c;分别是pylint与autopep8&#xff0c;主要用来提高我们在使用python进行自动化测试编写以及性能测试脚本编写过程中的代码质量、可读性与美观性。 pylint&#xff1a; ● 代码检查工具&#xff1a;它可以帮助检查代码中的错误、…

Java常见面试题总结

文章目录 1. 什么是线程和进程?2. 请简要描述线程与进程的关系,区别及优缺点&#xff1f;3. 什么是堆和方法区&#xff1f;4. 并发与并行的区别5. 同步和异步的区别6.为什么要使用多线程? 优点&#xff1f;&#xff08;重要&#xff09;7. 使用多线程可能带来什么问题?8. 如…

视频滚动字幕一键批量轻松添加,解锁高效字幕编辑,提升视频质量与观众体验

视频已成为我们获取信息、娱乐休闲的重要渠道。一部成功的视频作品&#xff0c;除了画面精美、音质清晰外&#xff0c;字幕的添加也是至关重要的一环。字幕不仅能增强视频的观感&#xff0c;还能提升信息的传达效率&#xff0c;让观众在享受视觉盛宴的同时&#xff0c;更加深入…

vue项目使用百度地图

打开百度地图开放平台 百度地图开放平台 | 百度地图API SDK | 地图开发 在控制台新建应用 复制访问应用的ak 可修改地图样式 使用部分 <!-- 引入地图 --><div class"main-aside"><div id"b-map-container"></div></div> …

面试ssss

响应式布局 响应式布局是一种设计和开发网页的方法&#xff0c;使网页能够适应不同的设备和屏幕尺寸&#xff0c;提供更好的用户体验。它通过使用媒体查询&#xff08;Media Queries&#xff09;和弹性布局&#xff08;Flexbox&#xff09;等技术&#xff0c;根据设备的特性和…

一个docker配置mysql主从服务器

这也就是因为穷&#xff0c;不然谁用一个docker配置主从&#xff0c;哈哈 既然成功了就记录下。过程挺折磨人的。 首先要保证你的电脑安装好了docker 为了保证docker当中主从能正常连网&#xff0c;现在docker里面创建一个网络环境 docker network create --driver bridge mysq…

面试八股——RabbitMQ

消息丢失问题 消息确认机制 生产者与MQ之间的消息确认&#xff1a; 当MQ成功接收消息后&#xff0c;会返回给生产者一个确认消息。如果在规定时间内生产者未收到确认消息&#xff0c;则任务消息发送失败。 MQ与消费者之间的消息确认&#xff1a; 当MQ成功接收消息后&#…

DeepFaceLab小白教程:视频换脸过程

合适那些人阅读&#xff1f; 适合从未使用过DeepFaceLab的群体。 如果你想基于DeepFaceLab完成一次视频换脸的操作&#xff0c;可以看本篇。 下载方式 GitHub https://github.com/iperov/DeepFaceLab 我是用motrix下载。 网盘 https://pan.baidu.com/share/init?surlO4…

鸿蒙(HarmonyOS)性能优化实战-Swiper高性能开发

背景 在应用开发中&#xff0c;Swiper 组件常用于翻页场景&#xff0c;比如&#xff1a;桌面、图库等应用。Swiper 组件滑动切换页面时&#xff0c;基于按需加载原则通常会在下一个页面将要显示时才对该页面进行加载和布局绘制&#xff0c;这个过程包括&#xff1a; 如果该页面…

nest使用swagger文档

OpenAPI(Swagger)规范是一种用于描述 RESTful API 的强大定义格式。 Nest 提供了一个专用模块来使用它。 安装 npm安装 npm install --save nestjs/swagger swagger-ui-expressyarn 安装 yarn add nestjs/swagger swagger-ui-express引入 使用 SwaggerModule 类初始化 Swa…

【Hadoop】-Hive初体验[13]

Hive体验 预先确保已经完成部署Hive&#xff0c;并启动了Metastore服务 可以执行&#xff1a;bin/hive&#xff0c;进入到Hive Shell环境中&#xff0c;可以直接执行SQL语句。 创建表 create table test(id int,name string,gender string); 插入数据 INSERT INTO test val…

Golang基础2-Array、Slice、Map

Array 数组 var a [5]int b:[5]int{} c:[...]int{}这样格式定义var a[5]int 和var a[10]int是不同类型从0开始下标&#xff0c;到len(a)-1遍历方式&#xff1a; for i : 0; i < len(a); i { }for index, v : range a { } 注意越界问题&#xff0c;panic值类型&#xff0c;…

密码学 | Schnorr 协议:零知识身份证明和数字签名

&#x1f955;原文&#xff1a; Schnorr 协议&#xff1a;零知识身份证明和数字签名 &#x1f955;写在前面&#xff1a; 本文属搬运博客&#xff0c;自己留存学习。文中的小写字母表示标量&#xff0c;大写字母表示椭圆曲线中的点。 1 Schnorr 简介 Schnorr 由德国数学家和密…