的记忆: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.mfbz.cn/a/568745.html

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

相关文章

用 LM Studio 1 分钟搭建可在本地运行大型语言模型平台替代 ChatGPT

&#x1f4cc; 简介 LM Studio是一个允许用户在本地离线运行大型语言模型&#xff08;LLMs&#xff09;的平台&#xff0c;它提供了一种便捷的方式来使用和测试这些先进的机器学习模型&#xff0c;而无需依赖于互联网连接。以下是LM Studio的一些关键特性&#xff1a; 脱机&am…

C++笔记:C++中的重载

重载的概念 一.函数重载 代码演示例子&#xff1a; #include<iostream> using namespace std;//函数名相同&#xff0c;在是每个函数的参数不相同 void output(int x) {printf("output int : %d\n", x);return ; }void output(long long x) {printf("outp…

RTU遥测终端为城市排水安全保驾护航!

近年来&#xff0c;全球气候变迁与城市化进程不断加速&#xff0c;导致强降雨事件频发&#xff0c;道路低洼地带、下穿式立交桥和隧道等区域在暴雨中常易积水&#xff0c;严重阻碍了人民的出行&#xff0c;甚至危及生命与财产安全。而传统的排水管网管理方式已难以适应现代城市…

mybatis的使用技巧8——联合查询union和union all的区别和用法

在实际项目开发中&#xff0c;会经常联合查询结构相似的多张数据表&#xff0c;使用union关键字就只需要一次sql操作&#xff0c;而无需执行多次查询并通过代码逻辑合并处理&#xff0c;减少了大量繁琐的操作&#xff0c;最重要的是还能通过可选的all关键字筛选重复的数据。 1…

数据结构基础:链表操作入门

数据结构基础&#xff1a;链表操作入门 数据结构基础&#xff1a;链表操作入门链表的基本概念链表的基本操作输出链表插入节点删除节点查找值 完整的链表操作示例结语 数据结构基础&#xff1a;链表操作入门 在计算机科学中&#xff0c;数据结构是组织和存储数据的方式&#x…

海康Visionmaster-常见问题排查方法-启动失数

问题2&#xff1a;VM无法启动&#xff0c;报错&#xff1a;参数错误&#xff1b;  问题原因&#xff1a;客户电脑环境异常导致代理启动失败。  解决方法&#xff1a;安装运行时库&#xff0c;并测试代理能否正常启动,步骤如下&#xff1a; ① 尝试双击代理进程&#xff…

WPF 6 命令

命令 创建一个按钮&#xff0c;新建一个事件&#xff0c;按住F12 就可以添加业务代码 运行代码 此时希望UI与后台代码分离&#xff0c;互不影响 此时新建一个MainViewModel类&#xff0c;来保存业务代码 Icommand 是所有command的父类接口 新建一个command来实现这个接口…

OceanBase诊断调优 】—— 如何快速定位SQL问题

作者简介&#xff1a; 花名&#xff1a;洪波&#xff0c;OceanBase 数据库解决方案架构师&#xff0c;目前负责 OceanBase 数据库在各大型互联网公司及企事业单位的落地与技术指导&#xff0c;曾就职于互联网大厂和金融科技公司&#xff0c;主导过多项数据库升级、迁移、国产化…

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

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

HarmonyOS开发案例:【相机开发】

基本概念 相机是OpenHarmony多媒体进程提供的服务之一&#xff0c;提供了相机的录像、预览、拍照功能&#xff0c;支持多用户并发取流。 在进行应用的开发前&#xff0c;开发者应了解以下基本概念&#xff1a; 视频帧 视频流指的是将一系列图片数据按照固定时间间隔排列形成的…

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

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

AI论文速读 |2024[TPAMI]【综述】自监督学习在时间序列分析的分类、进展与展望

题目&#xff1a; Self-Supervised Learning for Time Series Analysis: Taxonomy, Progress, and Prospects 作者&#xff1a;Kexin Zhang, Qingsong Wen(文青松), Chaoli Zhang, Rongyao Cai, Ming Jin(金明), Yong Liu(刘勇), James Zhang, Yuxuan Liang(梁宇轩), Guansong…

运维 kubernetes(k8s)基础学习

一、容器相关 1、发展历程&#xff1a;主机–虚拟机–容器 主机类似别墅的概念&#xff0c;一个地基上盖的房子只属于一个人家&#xff0c;很多房子会空出来&#xff0c;资源比较空闲浪费。 虚拟机类似楼房&#xff0c;一个地基上盖的楼房住着很多人家&#xff0c;相对主机模式…

【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

springboot论文格式系统

采用springbootmysqlhtmlvue技术 详细运行视频地址B站运行效果视频地址 &#xff08;1&#xff09;系统具备用户管理功能&#xff0c;包括用户注册、登录、权限管理等功能。 &#xff08;2&#xff09;系统具备格式规范管理功能&#xff0c;包括格式规范创建、编辑、删除等操…

Unity系统学习笔记

文章目录 1.基础组件的认识1.0.组件继承关系图1.1.项目工程文件结构&#xff0c;各个文件夹都是做什么的&#xff1f;1.2.物体变化组件1.2.3.三维向量表示方向1.2.4.移动物体位置附录&#xff1a;使用变换组件实现物体WASD移动 1.3.游戏物体和组件的显示和禁用1.3.1.界面上的操…

面试八股——RabbitMQ

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

related_name和related_query_name属性

在Django模型继承中&#xff0c;假如在外键或多对多字段中使用了related_name属性或related_query_name属性&#xff0c;则必须为该字段提供一个独一无二的反向名字和查询名字。但是&#xff0c;这样在抽象基类中一般会引发问题&#xff0c;因为基类中的字段都被子类继承并且保…

Python网络爬虫-详解XPath匹配网页数据

前言 XPath&#xff0c;全称XML Path Language&#xff0c;即XML路径语言&#xff0c;它是一门在XML文档中查找信息的语言。XPath使用路径表达式来选取XML文档中的节点或节点集。这些节点是通过沿着路径&#xff08;path&#xff09;或者步&#xff08;steps&#xff09;来选取…

从0到1—POC编写基础篇(一)

POC编写基础篇 POC的概念 在网络安全领域中&#xff0c;POC的概念是指"Proof of Concept"&#xff0c;也被称为"攻击验证"。它是指安全研究人员或黑客用来证明某个漏洞、弱点或安全问题存在的实证或演示。 网络安全研究人员经常通过开发POC来展示一个漏洞的…
最新文章