数据处理与统计分析——04-Pandas中Series的常用方法、属性、布尔索引、运算操作

Series

概述

  • Series也是Pandas中的最基本的数据结构对象,也是DataFrame的列对象或者行对象,series本身也具有行索引。
  • Series是一种类似于一维数组的对象,由下面两个部分组成:
    • values:一组数据(numpy.ndarray类型)
    • index:相关的数据行索引标签;如果没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。

(1) Series的常用属性

  • 常见属性

    属性说明
    loc使用索引值取子集
    iloc使用索引位置取子集
    dtype或dtypesSeries内容的类型
    TSeries的转置矩阵
    shape数据的维数
    sizeSeries中元素的数量
    valuesSeries的值
    indexSeries的索引值
    • loc属性
    first_row = data.loc[941]
    print(first_row)        # 获取第一行数据, 但是是以列的方式展示的
    print(type(first_row))  # <class 'pandas.core.series.Series'>
    
    • iloc属性
    first_row = data.iloc[0] # 使用索引位置获取自己
    print(first_row)        # 获取第一行数据, 但是是以列的方式展示的
    print(type(first_row))  # <class 'pandas.core.series.Series'>
    
    • dtype 或 dtypes
    print(first_row.dtype)          # 打印Series的元素类型, object表示字符串
    print(first_row['year'].dtype)  # 打印Series的year列的元素类型, int64# 打印Series的year列的元素类型, 该列值为字符串, 字符串没有dtype属性, 所以报错.
    print(first_row['firstname'].dtype)  
    
    • shape 和 size属性
    print(first_row.shape)		# 维度
    # 结果为: (7,)		因为有7列元素
    print(first_row.size)		# 元素个数: 7
    
    • values 属性
    print(first_row.values) # 获取Series的元素值
    
    • index属性
    print(first_row.index)  # 获取Series的索引print(first_row.keys()) # Series对象的keys()方法, 效果同上.
    

(2) Series的常用方法

  • 常用方法

    方法说明
    append连接两个或多个Series
    corr计算与另一个Series的相关系数
    cov计算与另一个Series的协方差
    describe计算常见统计量
    drop_duplicates返回去重之后的Series
    equals判断两个Series是否相同
    get_values获取Series的值,作用与values属性相同
    hist绘制直方图
    isinSeries中是否包含某些值
    min返回最小值
    max返回最大值
    mean返回算术平均值
    median返回中位数
    mode返回众数
    quantile返回指定位置的分位数
    replace用指定值代替Series中的值
    sample返回Series的随机采样值
    sort_values对值进行排序
    to_frame把Series转换为DataFrame
    unique去重返回数组
    value_counts统计不同值数量
    keys获取索引值
    head查看前5个值
    tail查看后5个值
  • 代码演示

    # 1. 创建Series对象.
    s1 = pd.Series(data=[1, 2, 3, 4, 2, 3], index=['A', 'B', 'C', 'D', 'E', 'F'])
    print(s1)# 2. 演示Series对象的常用方法.
    print(len(s1))      # 获取长度, 6
    print(s1.head())    # 获取前5条数据
    print(s1.head(n=2)) # 获取前2条数据print(s1.tail())    # 获取后5条数据
    print(s1.tail(n=3)) # 获取后3条数据print(s1.keys())    # 获取所有的列名print(s1.tolist())  # Series -> list列表
    print(s1.to_list()) # 效果同上
    print(s1.to_frame())# Series -> DataFrame对象print(s1.sort_values())                 # 根据 值进行排序 默认 asc=True 升序 从小到大
    print(s1.sort_values(ascending=False))  # 根据 值进行排序, False为降序 从大到小
    print(s1.sort_index())                  # 根据 索引进行排序, 默认升序# 平均值, 最大值, 最小值, 求和, 标准差...
    print(s1.mean())
    print(s1.max())
    print(s1.min())
    print(s1.sum())
    print(s1.std())     # 标准差
    print(s1.var())     # 方差# 查看各列的 非空值总数
    print(s1.count())
    # 统计每个元素的个数
    print(s1.value_counts())    # 类似于SQL语句: select 性别, count(id) from 表名 group by 性别;
    # 查看 Series列 的详细信息
    print(s1.describe())
    

(3) Series的布尔索引

# 1. 读取数据   True -> 要, False -> 不要
df6 = pd.read_csv('data/scientists.csv')
df6
#%%
# 2. 查看每列的详细信息
df6.describe()   # 统计信息
df6.info         # 详细信息
#%%
# 3. 从 df对象中 -> 获取 Series对象
series_age = df6.Age
series_age
#%%
# 4. 演示 Series对象的 布尔索引
bool_list = [True, False, False, True, True, False, False, True]
print(series_age[bool_list])
#%%
# 5. 筛选年龄大于平均年龄的科学家
# 5.1 获取平均年龄
avg_mean = series_age.mean()
avg_mean
#%%
# 5.2 看看当前年龄 是否大于 平均年龄
cur_bool = [series_age > avg_mean]
cur_bool
#%%
# 5.3 获取 年龄大于平均年龄的科学家
df6.Name[series_age > avg_mean]
#%%
# 5.3 方式二
df6['Name'][df6['Age'] > df6['Age'].mean()]

(4) Series的运算

# 场景1: Series对象 和 数值运算, 则数值会和 Series对象的每个值进行具体的运算. 
series_age + 100
series_age * 2
#%%
# 场景2: Series对象 和 Series对象运算, 会优先参考 索引列运算, 即: 索引值相同的进行计算, 不同的用NAN(空值)填充.
series_age + series_age
#%%
series_age.sort_index(ascending=False) + series_age
#%%
series_age + pd.Series([1, 2, 3])
series_age + pd.Series([1, 2, 3], index=['a', 'b', 'c'])

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

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

相关文章

C++: string(二)

✨✨ 欢迎大家来到我的文章✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 分类专栏&#xff1a;c 我的主页&#xff1a;tyler s blog 文章目录 一 string的成员函数1 insert2 resize3assign4erase5replace6 find(1) find(2)rfind…

【无人机设计与控制】基于MATLAB的四旋翼无人机PID双闭环控制研究

摘要 本文基于MATLAB/Simulink环境&#xff0c;对四旋翼无人机进行了PID双闭环控制设计与仿真研究。通过分析四旋翼无人机的动力学模型与运动学模型&#xff0c;建立了姿态和位置双闭环控制系统&#xff0c;以实现无人机的稳定飞行与精确轨迹跟踪。仿真实验验证了该控制策略的…

DimensionX 部署笔记

目录 生成视频用CogVideoX-5b-I2V 推理代码&#xff1a; DimensionX 生成视频用CogVideoX-5b-I2V 推理代码&#xff1a; 可以生成&#xff0c;从左向右旋转的&#xff0c;也可以生成从上往下旋转的&#xff1a; import torch from diffusers import CogVideoXImageToVideo…

如何利用SAP低代码平台快速构建企业级应用?

SAP作为全球领先的企业管理软件解决方案提供商&#xff0c;一直致力于为企业提供全面且高效的业务管理工具。随着技术的快速发展&#xff0c;传统的开发方式已经无法满足企业在快速变化的市场环境下的需求。低代码开发平台应运而生&#xff0c;它通过简化应用程序的创建过程&am…

拉取docker镜像应急方法

发现许多docker hub镜像网址速度也慢得发指啦&#xff0c;如果想速度快点&#xff0c;可以考虑买个按量计费的公有云服务器&#xff0c;用他们的内网镜像&#xff0c;然后再导出&#xff0c;然后传到本地。 开通服务器 可以考虑个开通最低配的&#xff0c;这里我用的是腾讯的…

Ubuntu下的Eigen库的安装及基本使用教程

一、Eigen库介绍 简介 Eigen [1]目前最新的版本是3.4&#xff0c;除了C标准库以外&#xff0c;不需要任何其他的依赖包。Eigen使用的CMake建立配置文件和单元测试&#xff0c;并自动安装。如果使用Eigen库&#xff0c;只需包特定模块的的头文件即可。 基本功能 Eigen适用范…

Ansible一键部署Kubernetes集群

一、环境准备 主机 ip地址 角色 k8s-master 192.168.252.141 master k8s-node1 192.168.252.142 node k8s-node2 192.168.252.143 node 二、实战 Ansible部署 主节点安装Ansible yum -y install epel-release yum -y install ansible ansible --version 开启记…

Comfy UI Manager 自定义节点管理

在 Stable Diffusion Web UI 中&#xff0c;可以通过插件的方式&#xff0c;扩展更多的功能&#xff0c;如&#xff1a;tagger提示词反推、ControlNet 等。 同样的在 Comfy UI 中有类似的功能实现&#xff0c;不过在 Comfy UI 中叫做自定义节点。 通过安装自定义节点的方式&a…

第二十周:机器学习

目录 摘要 ABSTRACT 一、吴恩达机器学习exp2——逻辑回归 1、logistic函数 2、数据预处理 3、损失函数 4、梯度下降 5、设定评价指标 6、决策边界 7、正则化 二、动手深度学习pytorch——数据预处理 1、数据集读取 2、缺失值处理 3、转换为张量格式 总结 摘要…

从人-物到人-机再到人-AI

从 人-物 到 人-机 再到 人-AI &#xff0c;这一演化过程展现了人类与技术、工具的互动方式随着时代的发展而发生的深刻变化。这一变化不仅是技术进步的体现&#xff0c;更是社会、文化以及工作方式的根本转变。以下是这一演变的主要特点及其背后的影响&#xff1a; 1. 人-物时…

go-zero(三) 数据库操作

go-zero 数据库操作 在本篇文章中&#xff0c;我们将实现一个用户注册和登录的服务。我们将为此构建一个简单而高效的 API&#xff0c;包括请求参数和响应参数的定义。 一、Mysql连接 1. 创建数据库和表 在 MySQL 中创建名为 test_zero的数据库&#xff0c;并创建user 表 …

【ASR技术】WhisperX安装使用

介绍 WhisperX 是一个开源的自动语音识别&#xff08;ASR&#xff09;项目&#xff0c;由 m-bain 开发。该项目基于 OpenAI 的 Whisper 模型&#xff0c;通过引入批量推理、强制音素对齐和语音活动检测等技术。提供快速自动语音识别&#xff08;large-v2 为 70 倍实时&#xf…

【C++ 算法进阶】算法提升十六

目录 背包问题变种 &#xff08;动态规划&#xff09;题目题目分析 连续可组成数字题目题目分析 min-patches题目 最小补丁问题题目分析代码 逆序对个数 &#xff08;归并排序&#xff09;题目题目分析 约瑟夫环问题 &#xff08;公式&#xff09;题目题目分析 背包问题变种 &a…

链表的基本操作

链表&#xff0c;由若干个结点组成&#xff0c;每个结点包含数据域和指针域。结点结构如下图所示&#xff1a; 一般来讲&#xff0c;链表中只会有一个结点的指针域为空&#xff0c;该结点为尾结点&#xff0c;其他结点的指针域都会存储一个结点的内存地址。链表中也只会有一个结…

C#高级:Winform中的自定义窗体输入

目录 一、多样式输入&#xff08;无封装&#xff09; 1.代码 2.效果 二、单输入框封装 1.使用 2.封装 3.效果 三、组合框批量输入封装 1.使用 2.封装 3.效果 一、多样式输入&#xff08;无封装&#xff09; 1.代码 private async void button1_Click(object send…

memblock内存分配器

一、简述 memblock 是 Linux 内核中的一个内存管理子系统&#xff0c;主要用于在系统启动早期阶段管理物理内存。它在内核初始化期间负责管理内存&#xff0c;直到更复杂的内存管理子系统&#xff08;如伙伴系统&#xff09;接管。 二、工作原理 初始化&#xff1a;在内核启…

【C++滑动窗口】1248. 统计「优美子数组」|1623

本文涉及的基础知识点 C算法&#xff1a;滑动窗口及双指针总结 LeetCode1248. 统计「优美子数组」 给你一个整数数组 nums 和一个整数 k。如果某个连续子数组中恰好有 k 个奇数数字&#xff0c;我们就认为这个子数组是「优美子数组」。 请返回这个数组中 「优美子数组」 的数…

⽂件内容的读写

文件 InputStream &#xff08;字节流读出 抽象类&#xff09; InputStream 只是⼀个抽象类&#xff0c;要使⽤还需要具体的实现类 FileInputStream&#xff08;字节流读出&#xff09; OutputStream&#xff08;字节流写入&#xff09; Reader&#xff08;字符流读入&#xff…

FreeRTOS消息队列实验与出现的问题

目录 实验名字&#xff1a;队列操作实验 1、实验目的 2、实验设计 3、实验工程 4、实验程序与分析 ●任务设置 ● 其他应用函数 ● main()函数 ● 任务函数 ●中断初始化及处理过程 5.程序运行结果分析 6.进行实验移植时所遇到的问题 1.项目中mymalloc等函数缺少 …

el-cascader 使用笔记

1.效果 2.官网 https://element.eleme.cn/#/zh-CN/component/cascader 3.动态加载&#xff08;官网&#xff09; <el-cascader :props"props"></el-cascader><script>let id 0;export default {data() {return {props: {lazy: true,lazyLoad (…