Python中Pandas详解之数据结构

文章目录

    • Pandas 数据分析
      • Pandas 简介
      • Pandas 安装
      • Series 类型数据
        • Series的创建
        • Series的访问
        • Series 中向量化操作与布尔索引
        • Series的切片
        • Series的缺失值
        • Series的增与删
        • Series的name
      • DataFrame 数据类型
        • DataFrame的创建
        • DataFrame的访问
        • DataFrame的删除
        • DataFrame的添加
          • 添加行
          • 添加列

Pandas 数据分析

Pandas 简介

Pandas是Python生态下的一个数据分析包,他对于Python数据分析的意义是十分重大的,他与NumPy的不同之处是支持图标和混杂数据运算的,而NumPy是基于数组构建的内容,他的各种图像生成也十分方便,并且支持各种数据存储文件、数据库、甚至Web中读取数据

Pandas 安装

和NumPy的安装一样使用

pip install pandas

命令安装即可

Series 类型数据

Series是Pandas的核心数据结构之一,也是理解DataFrame的基础

Series的创建

Series的中文翻译是系列,是一种类似于一维数组的结构,是数组和索引构成的

import pandas as pd
pd.Series(data, index = index)

在这两个参数中,data是数据源,可以是整数,字符串等,而默认索引就是数据的标签(label)

例如

a = pd.Series([1, 2, 5, 3, 2])
print(a)

屏幕截图 2023-12-25 170012.png

需要注意的是Series的内部是基于NumPy的N维数组构建的,因此内部的数据需要统一

其次Series增加对应的label作为索引,如果没有显示添加索引,Python会自动添加一个0到n-1的索引值,通常都是索引在左,数值在右边

当然,其中的索引也可以被更改为其他的内容,是类似于Python中的字典

Series还提供了一些简单的统计方法,describe()

例如

print(a.describe())

屏幕截图 2023-12-25 171020.png

参数说明
count数据个数
mean均值
std均方差
min最小值
max最大值
25%前25%的数据分位数
50%前50%的数据分位数
75%前75%的数据分位数
Series的访问

第一种最简单的访问方式就是通过下标存取Series对象内部的元素

当然也可以用label进行访问

需要说明的是,可以按照任意顺序一次访问多个数据

例如

print(a[[1,2,3]])

需要说明的是,同时访问多个数值就需要以列表的形式出现

对于两个Series对象还可以通过append()方法进行叠加操作,用来合并对象

但是当叠加对象时,索引就会混乱,因此当叠加时可以采用ignore_index=True,这样就可以重新添加索引

例如

a1.append(a2,ignore_index=True)
Series 中向量化操作与布尔索引

类似于NumPy,Pandas也支持广播操作,也就是加减乘除一个标量,

同样的Series也支持用布尔表达式提取符合条件的数值,而且Series也可以作为NumPy函数的一个参数进行数据运算

Series的切片

对于Series也可以使用切片操作选取处理其中的值,返回值依然是Series的对象

需要注意的时,与数字的切片不同,用label切片不是左闭右开,而是两边都是闭区间

Series的缺失值

在数据处理中会遇到缺失值,在Pandas会用NaN来表示

我们可以使用Pandas中的isnull()和notnull()来检测是否含有缺失值

对于isull()方法,他的返回值是一个布尔值Series对象,True表示为缺失值,False表示不是缺失值,notnull正好与之相反

这对海量数据的操作是十分友好的

Series的增与删

当我们要删除Series中的数据时,使用drop方法即可,他的参数就是label,也可以是列表,用于删除多项元素

添加数据就可以使用我们之前所说的append方法即可

Series的name

除了index和value,还有两个属性,是name和index.name

name可以立即为数值(value)列的名称,index可以理解为一个特殊的索引列,index.name就是索引列(index)的名称,就相当于是列名的作用

默认情况下都被设置为None,我们也可以通过代码进行直接赋值

DataFrame 数据类型

如果Series是Excel中的一列,那DataFrame就是Excel中的一张表

DataFrame的创建

DataFrame实际上可以理解为数据结构中带标签的二维数组,他由若干个Series构成

构建DataFrame的最常用的方法是先构建一个由列表或NumPy数组组成的字典,再将字典作为DataFrame中的参数

例如

df = pd.DataFrame({'name':['summer','morty','rick','jerry']})
print(df)

屏幕截图 2023-12-25 174125.png

这样我们就可以用若干字典的项来构建一张表了,左边的数字就是行数

例如

df = pd.DataFrame({'name': ['summer', 'morty', 'rick', 'jerry'],'age': [17 , 14, 60,35],'gender': ['female', 'male', 'male', 'male']})
print(df)

屏幕截图 2023-12-25 174600.png

我们也可以通过NumPy的数组生成DataFrame,我们也可以在创建DataFrame时指定列名和行名

例如

df2 = pd.DataFrame(data,columns=['one','two'],index=['a','b'])

本质上,DataFrame是由若干个Series构成的,那么Series就是DataFrame的天然数据源,同样的DataFrame也支持NumPy转置操作,也可以使用transpose()方法完成转置

DataFrame的访问

访问DataFrame的列很方便,因为DataFrame提供了columns属性,可以通过具体的列名称进行访问

例如

df.columns # 访问列名
df.columns.values[0] # 访问元素

DataFrame的一个神奇的地方在于,他可以把列明当作为对象中的一个元素进行获取

例如

df.列名

想要获取切片就和NumPy的数组操作时一模一样的,这里不多赘述

DataFrame的删除

类似于Series,删除操作也是使用drop方法删除一行或一列

我们也可以使用全局内置函数del,直接在DF中删除某行某列,因为drop方法是生成新的DF

DataFrame的添加
添加行

我们直接创建一个空的DF对象,再利用for循环逐个添加新的行即可

例如

df = pd.DataFrame(columns = ['1','2'])
for index in range(5):df.loc[index] = ['name '+str(index)] + list(randint(10, size=2))

使用loc方法就可以添加一个新的行,index就是DF对象中原先没有的行索引,再进行赋值

我们还可以使用append方法,可以同时批量添加多行数据,类似于NumPy的vstack,垂直堆叠的效果

添加列

和添加行相比就更加简单,实际上就是添加了一个列的名称,再对其内容进行赋值,我们也可以使用concat方法,类似于hstack,水平堆叠,将两个DF对象进行拼接

对于以上两种添加方法,也可以设置忽略原有的索引,进行重新定义索引的编号

对于Pandas的操作指令还有非常多,我们需要在实践中不断掌握,慢慢摸索,越用越熟,越用越精 感谢各位的支持,如果你发现文章中有任何不严谨或者需要补充的部分,欢迎在评论区指出

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

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

相关文章

keras 人工智能之VGGNet神经网络的图片识别训练

上期文章我们分享了如何使用LetNet体系结构来搭建一个图片识别的神经网络: 人工智能Keras的第一个图像分类器(CNN卷积神经网络的图片识别) 本期我们基于VGGNet神经网络来进行图片的识别,且增加图片的识别种类,当然你也可以增加更多的种类,本期代码跟往期代码有很大的相…

cad安装路径显示灰色选择不了怎么办?

cad安装路径显示灰色选择不了怎么办呢?今天教给大家。 灰色是因为之前下载过一次,没有删干净,注册表里还有cad,它认为你的电脑中有cad,所以安装路径是灰色的,不能安装。先同时按下【xinR】键,打…

用旧电脑搭建NAS

将旧 PC 改造成家庭服务器或 NAS(网络附加存储的缩写) 一、使用旧 PC 作为 NAS 服务器的优势 如果您想要快速且易于使用的解决方案,专门构建的 NAS 可能是个不错的选择。但将旧 PC 重新利用为 NAS 服务器有其独特的优势: 黑苹果…

影响差价的因素有几种?都是什么?Anzo Capital盘点

各位投资者都知道运用好差价,在交易市场中就能大杀四方,遇神杀神遇佛杀佛,赚钱那还不是洒洒雨,轻松拿捏。今天Anzo Capital就盘点一下影响差价的因素,希望各位投资者都能在外汇市场中如鱼得水。 首先,流动…

Linux部署MeterSphere结合内网穿透实现远程访问服务管理界面

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

串口服务器助力环境监测系统高效管理、远程监控

物联网的发展使得环境监测系统具备了更强大的数据采集和分析能力。传统的环境监测系统通常需要人工到现场采集数据,费时费力且容易受到外界干扰。而通过使用串口服务器,可以实现环境监测系统的远程数据采集和监控,从而提高监测效率和数据准确…

如何成为一名与众不同的程序员?|面向思维做事

思维能力是比解决具体问题更重要的能力。问题也许各有不同,但思维方式可以复制和迁移。正所谓:"有道无术,术尚可求也,有术无道,止于术"。 引言 本书的首要目的就是打破“不知道自己不知道”的思维禁锢,把软件…

操作系统期末复习知识点二计算与应用

1.理解银行家算法判断死锁的定理并能计算相关的参数。 2.能利用LRU、FIFO算法求缺页率。 3.纯页式管理中,求逻辑地址对应的物理地址,页号、页内地址长度,画出逻辑地址的格式,在引入块表时,求出有效访问时间。 4.可变分…

【MySQL】:超详细MySQL完整安装和配置教程

🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. MySQL数据库1.1 版本1.2 下载1.3 安装1.4 客户端连接 🌤️全篇总…

龙迅LT8713SX适用于一路Type-C/DP1.4转三路Type-C/DP1.4/HDMI2.0应用方案,分辨率高达4K60HZ,支持SST/MST模式!

1. 概述 LT8713SX是一款高性能Type-C/DP1.4转Type-C/DP1.4/HDMI2.0转换器,具有三个可配置的DP1.4/HDMI2.0/DP输出接口和音频输出接口。LT8713SX支持 DisplayPort™ 单流传输 (SST) 模式和多流传输 (MST) 模式。当接收…

【网络编程】基于UDP数据报实现回显服务器程序

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 前言 我们如果…

统计和绘图软件GraphPad Prism mac功能特点

GraphPad Prism mac是一款专业的统计和绘图软件,主要用于生物医学研究、实验设计和数据分析。 GraphPad Prism mac功能和特点 数据导入和整理:GraphPad Prism 可以导入各种数据格式,并提供直观的界面用于整理、编辑和管理数据。用户可以轻松…