2023.12.30 Pandas操作

news2025/1/18 8:58:11

目录

1. pandas基础

 1.1 pandas的基本介绍

 1.2 pandas基础使用

 2. pandas的数据结构

2.1 series对象

 2.2 使用列表,自定义索引,字典,元组方式创建series对象

2.3  Series对象常用API

2.4 Series 对象的运算


1. pandas基础

        1.1 pandas的基本介绍

Python在数据处理上独步天下:代码灵活、开发快速;尤其是Python的Pandas包,无论是在数据分析领域、还是大数据开发场景中都具有显著的优势:

  • Pandas是Python的一个第三方包,也是商业和工程领域最流行的结构化数据工具集,用于数据清洗、处理以及分析

  • Pandas和Spark中很多功能都类似,甚至使用方法都是相同的;当我们学会Pandas之后,再学习Spark就更加简单快速

  • Pandas在整个数据开发的流程中的应用场景

    • 在大数据场景下,数据在流转的过程中,Python Pandas丰富的API能够更加灵活、快速的对数据进行清洗和处理

  • Pandas在数据处理上具有独特的优势:

    • 底层是基于Numpy构建的,所以运行速度特别的快

    • 有专门的处理缺失数据的API

    • 强大而灵活的分组、聚合、转换功能

适用场景:

  • 数据量大到excel严重卡顿,且又都是单机数据的时候,我们使用pandas

    • pandas用于处理单机数据(小数据集(相对于大数据来说))

  • 在大数据ETL数据仓库中,对数据进行清洗及处理的环节使用pandas

 1.2 pandas基础使用

import pandas as pd

if __name__ == '__main__':
    print('演示pandas的相关使用:入门案例')
    # 1 读取数据
    df = pd.read_csv(filepath_or_buffer='./1960-2019全球GDP数据.csv', encoding='GBK')

    # 2 获取数据
    print(df.head(10))

演示pandas的相关使用:入门案例
   year country           GDP
0  1960      美国  543300000000
1  1960      英国   73233967692
2  1960      法国   62225478000
3  1960      中国   59716467625
4  1960      日本   44307342950
5  1960     加拿大   40461721692
6  1960     意大利   40385288344
7  1960      印度   37029883875
8  1960    澳大利亚   18577668271
9  1960      瑞典   15822585033

 2. pandas的数据结构

上图为上一节中读取并展示出来的数据,以此为例我们来讲解Pandas的核心概念,以及这些概念的层级关系:

  1. DataFrame
  2. Series
  3. 索引列
  4. 索引名、索引值
  5. 索引下标、行号
  6. 数据列
  7. 列名
  8. 列值,具体的数据

其中最核心的就是Pandas中的两个数据结构:DataFrame和Series

2.1 series对象

Series也是Pandas中的最基本的数据结构对象,下文中简称s对象;是DataFrame的列对象,series本身也具有索引。

Series是一种类似于一维数组的对象,由下面两个部分组成:

  • values:一组数据(numpy.ndarray类型)

  • index:相关的数据索引标签;如果没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。

 2.2 使用列表,自定义索引,字典,元组方式创建series对象

import pandas as pd

# 使用默认自增索引
s2 = pd.Series([1, 2, 3])
print(s2)
'''
0    1
1    2
2    3
dtype:int64
'''
# 自定义索引
s3 = pd.Series([1, 2, 3], index=['A', 'B', 'C'])
print(s3)
'''
A    1
B    2
C    3
dtype: int64
'''
# 使用元组创建对象
tst = (1, 2, 3, 4, 5, 6)
print(pd.Series(tst))
'''
0    1
1    2
2    3
3    4
4    5
5    6
dtype: int64
'''
# 使用字典,key会成为索引,值会成为Series对象
dst = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6}
print(pd.Series(dst))
'''
0    1
1    2
2    3
3    4
4    5
5    6
dtype: int64
'''

2.3  Series对象常用API

import pandas as pd

s4 = pd.Series([i for i in range(6)],index=[i for i in 'ABCDEF'])
print(s4)
'''
A    0
B    1
C    2
D    3
E    4
F    5
dtype: int64
'''

 

import pandas as pd

s4 = pd.Series([i for i in range(6)], index=[i for i in 'ABCDEF'])
print(s4)
'''
A    0
B    1
C    2
D    3
E    4
F    5
dtype: int64
'''

# s对象有多少个值,int
print(len(s4))  # 6
print(s4.size)  # 6

# s对象有多少个值,单一元素构成的元组 (6,)
print(s4.shape)

# 查看s对象中数据的类型,int64
print(s4.dtypes)

# s对象转换为list列表 [0, 1, 2, 3, 4, 5]
print(s4.to_list())

# s对象的值 array([0, 1, 2, 3, 4, 5], dtype=int64)
print(s4.values)

# s对象的值转换为列表
print(s4.values.tolist())

# s对象可以遍历,返回每一个值
for i in s4:
    print(i)

# 下标获取具体值, 1
print(s4[1])

# 返回前2个值,默认返回前5个,
# A    0
# B    1
print(s4.head(2))

# 返回最后1个值,默认返回后5个
# F    5
print(s4.tail(1))

# 获取s对象的索引 Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
print(s4.index)

# s对象的索引转换为列表
s4.index.to_list()

# s对象中数据的基础统计信息
print(s4.describe())
# 返回结果及说明如下
# count    6.000000 # s对象一共有多少个值
# mean     2.500000 # s对象所有值的算术平均值
# std      1.870829 # s对象所有值的标准偏差
# min      0.000000 # s对象所有值的最小值
# 25%      1.250000 # 四分位 1/4位点值
# 50%      2.500000 # 四分位 1/2位点值
# 75%      3.750000 # 四分位 3/4位点值
# max      5.000000 # s对象所有值的最大值
# dtype: float64
# 标准偏差是一种度量数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。
# 四分位数(Quartile)也称四分位点,是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。

# seriest对象转换为df对象
s4.to_frame()
s4.reset_index()

2.4 Series 对象的运算

Series和数值型变量计算时,变量会与Series中的每个元素逐一进行计算

两个Series之间计算,索引值相同的元素之间会进行计算;索引不同的元素最终计算的结果会填充成缺失值,用NaN表示

  • Series和数值型变量计算

print(s4 * 5)
# # 返回结果如下
# A     0
# B     5
# C    10
# D    15
# E    20
# F    25
# dtype: int64
# 构造与s4索引相同的s对象
s5 = pd.Series([10]*6, index=[i for i in 'ABCDEF'])

# 两个索引相同的s对象进行运算
print(s4 + s5)

# 返回结果如下
'''
这个是s4
A    0
B    1
C    2
D    3
E    4
F    5

这个是s5
A    10
B    10
C    10
D    10
E    10
G    10

这个是s4+s5
A    10
B    11
C    12
D    13
E    14
F    15
dtype: int64
'''

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

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

相关文章

SQL server Profiler的使用

在SQL server management studio 中 的工具下 选择SQL server Profiler 对sql进行过滤

计算机网络【EPOLL 源码详解】

IO多路复用 在以前,传统的网络编程是多线程模型,一个线程单独处理一个请求。 然而,线程是很昂贵的资源: 线程的创建和销毁成本很高,linux的线程实际上是特殊的进程;因此通常会使用线程池来减少线程创建和…

React中super() 和 super(props) 有什么区别?

面试官:super() 和 super(props) 有什么区别? 一、ES6 类 在 ES6 中,通过 extends 关键字实现类的继承,方式如下: class sup {constructor(name) {this.name name;}printName() {console.log(this.name);} }class s…

Android 13 - Media框架(27)- ACodec(五)

前面几节我们了解了OMXNodeInstance是如何处理setPortMode、allocateBuffer、useBuffer的,这一节我们再回到ACodec,来看看 ACodec start 的其他部分。 我们首先来回顾一下,ACodec start 的状态切换以及处理的事务,我们用一张不太准…

GBASE南大通用数据库-GBase 8a MPP Cluster之木桶效应降低技术

几千年前,因为金属冶炼、塑料成型技术不成熟,盛产在水源丰富的江南一带的用来洗衣服、盛水的容器都是用那种木板与竹钉合围并在外部用绳索、皮条之类紧箍起来的木桶,名字叫箍木桶。一个木桶由于老化或者损坏,桶上的个别木板发生断…

jsp+ssm+mysql实现的酒店预定管理系统项目----计算机毕业设计

项目介绍 jspssm框架(spring、springMVC、mybaits)实现的酒店预定管理系统的源码和视频开发教程。本系统分前台和后台管理两部分,前台实现了用户登录注册、查看房型信息、预定房间、提交订单、查看个人订单、修改个人资料等,后台…

RestClient操作索引库_创建索引库(二)

ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句, 通过http请求发送给ES。 官方文档地址: https://www.elastic.co/quide/en/elasticsearch/client/index.html 目录 一、初始化JavaRestClient 1.1.依赖引入 1.2.初始化…

Getway介绍和使用

Getway 入门简介 网关搭建步骤: 创建项目,引入nacos服务发现和gateway依赖 配置application.yml,包括服务基本信息、nacos地址、路由 路由配置包括: 路由id:路由的唯一标示 路由目标(uri)…

vue 导出 HTML 结构为 Word 文档(.docx)-支持表格、css样式、图片

在 Web 开发中,有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档,以便更方便地分享和打印。本文将介绍如何使用 html-docx-js 和 file-saver 这两个 JavaScript 库,实现将 HTML 结构导出为 Word 文档的功能。 工具简介 1. html-d…

QT编译并部署QtMqtt相关环境+跑测demo【超详细教程】

文章目录 概要整体架构流程▷下载指定版本的QMqtt源码:▷编译后同步MQTT相关文件: 技术名词解释技术实现步骤详解一、编译源码1、编译报错2、解决思路3、编译通过 二、继续完善mqtt应用环境1、打开编译生成的shadow build文件夹2、同步lib3、同步bin4、同…

69内网安全-域横向CobaltStrikeSPNRDP

这节课主要讲spn和rdp协议, 案例一域横向移动RDP传递-Mimikatz rdp是什么,rdp是一个远程的链接协议,在linux上面就是ssh协议, 我们在前期信息收集的时候,得到一些hash值和明文密码可以进行一些相关协议的链接的&am…

用 Node.js 写一个爬虫

自己设计一个网站,然后去爬取别人家页面的数据来做一个自己的网站。哈哈哈,如果自己写着玩可能没啥事,但如果用这个网站来获利,你可能就要被寄律师函了,毕竟这有点‘刑’。这篇文章呢,就带大家爬取豆瓣TOP2…

Peter算法小课堂—浮点数危机

大家先想想下面这个代码运行结果&#xff1a; #include <bits/stdc.h> using namespace std; int main(){double x5.2;double y4.11.1;cout<<(x<y)<<endl;cout<<x-y<<endl;return 0; } 最终发现&#xff0c; &#xff1f;&#xff1f;&…

HDMI2.1输入转4Port MIPI/LVDS输出,嵌入式SPI闪存固件存储,VR和AR应用首选国产芯片方案-LT6911GXC

描述 LT6911GXC是一款高性能的HDMI2.1到MIPI或LVDS芯片&#xff0c;用于VR/显示应用。 HDCP RX作为HDCP中继器的上游&#xff0c;可配合其他芯片的HDCPTX实现中继器功能。 对于HDMI2.1输入&#xff0c;LT6911GXC可以配置为3/4通道。自适应均衡使其适合于长电缆应用&#xff0c;…

Python集成开发工具

第二章、IDE&#xff08;PyCharm&#xff09; 一、设置py文件模板 设置模版 二、格式化代码设置 三、PyCharm运行python源文件的模式 第一次按照何种模式执行测试用例&#xff0c;后续都会按照这种方式去执行 普通模式&#xff0c;unittest模式&#xff0c;pytest模式介绍 四…

C# Onnx yolov8n forklift detection

目录 效果 模型 项目 代码 下载 C# Onnx yolov8n forklift detection 效果 模型 Model Properties ------------------------- date&#xff1a;2023-12-25T16:22:05.530078 author&#xff1a;Ultralytics task&#xff1a;detect license&#xff1a;AGPL-3.0 https:/…

OCP NVME SSD规范解读-4.NVMe IO命令-1

针对NVMe-IO-1到NVMe-IO-14的解读如下&#xff1a; NVMe-IO-1&#xff1a; 设备应支持所有必需的NVMe I/O命令。这是设备能够进行基本数据读写操作的基础要求。NVMe I/O命令包括读、写、删除、擦除等操作&#xff0c;这些是存储设备的核心功能。 NVMe-IO-2&#xff1a; 设备应…

11、分布式事务高频面试题

1、什么是分布式事务 在分布式系统中&#xff0c;一个业务因为跨越不同数据库或者跨越不同微服务而包含多个子事务&#xff0c;要求所有子事务同时成功或失败&#xff0c;这就是分布式事务。 比如一个电商系统的下单操作需要请求三个服务来完成&#xff0c;这三个服务分别是&…

【前端技术】LocalForage数据存储

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

2022年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员&#xff0c;包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系&#xff0c;让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例&#xff0c;也能与国内顶尖的技术专家…