数据分析04——Pandas简介/Series对象/DataFrame对象

news2024/10/7 12:28:42

1、Pandas简介:

  • Pandas是基于NumPy开发的
  • 数据分析三大剑客之一,Python数据分析的核心库
  • 提供快速、灵活、明确的数据结构
  • Series对象:一维数组结构,由index和value构成
  • DataFrame对象:二维数组结构,由index、column和value构成
  • 能够简单、直观、快速地处理各种类型的数据

2、Series对象:

  • 创建series对象方法很简单,但是series索引获取值方法就有两种,一种是通过原索引,一种是通过自定义索引。
  • 关键字:Series、data、index、values、hasnans
import pandas as pd	# 必须要导入pandas库,别名都是约定俗成的pd

# 创建pandas对象
s1 = pd.Series([88, 98, 75])

# 设置Series索引,如果不设置索引,默认从0开始
s2 = pd.Series(
    data=[88, 98, 75],
    index=[1, 2, 3])
   
# 索引不一定是数字
s3 = pd.Series(
    data=[88, 98, 75],
    index=['张三', '李四', '王五'])

# 我们自己设置的索引叫做索引名,原有的默认索引叫做索引号
print(s3[0])	# 88
print(s3['张三'])	# 88

# 可以通过多个索引名获取值
print(s3[['张三', '王五']])	# 88 75

# 索引名(自定义的)切片获取值,左闭右闭
s3['张三':'王五']

# 索引号(原始的)切片获取值,左闭右开
s3[0:2]

# 获取series对象的索引
s3.index
# 获取series对象的值
s3.values

# nan:not a number,指空值
s3.hasnans	# 判断series对象是否包含一个空值

3、DataFrame对象:

  • DataFrame对象其实就是一个二维数组
  • 创建DataFrame对象普通方法:(data(二维数组)、index(行索引、序号)、columns(列索引、表头、字段))
import pandas as pd

# 表单由行列构成,二维数组
# 索引:行索引(序号)、列索引(表头)
data = [[110, 105, 99],
        [105, 88, 115],
        [109, 120, 130]]
index = [0, 1, 2]  # 行索引
columns = ['语文', '数学', '英语']  # 列索引

df = pd.DataFrame(
    data=data,
    index=index,
    columns=columns)
df
# DataFrame由index、columns、values三个组件构成
# DataFrame对象是Series对象的集合

在这里插入图片描述

  • 如果新建DataFrame对象时,data中只有一行数组会发生什么? 答:可以正确新建对象
d1 = pd.DataFrame(
    data = [[1, 2, 3]],
#     index=[1, 2, 3]
    columns = ['你', '我', '他']
)
  • 用字典创建DataFrame对象方法:

    • 本质就是通过字典把创建每一列的数据,其中列索引是字典的key,每一列的值就是字典的value
      在这里插入图片描述
  • 遍历DataFrame

    • DataFrame对象名.columns:获取列索引
    • 通过列索引获取的每一列数据都是一个Series对象
    • DataFrame对象名[列索引]:获取某一列数据(Series对象)
    • 遍历DataFrame,归根结底就是在遍历列数据
for col in df.columns:
    series = df[col]
    print(series)
  • DataFrame的重要属性
    1、查看所有值:DataFrame对象名.values
    2、查看某一列中不重复的值(去重):DataFrame对象名[列名].unique()
    3、查看某列的不重复值的数量:DataFrame对象名[列名].nunique()
    4、查看所有列的数据类型:DataFrame对象名.dtypes
    5、查看所有行名:DataFrame对象名.index
    6、重命名行名:DataFrame对象名.index = [‘A1’, ‘A2’, ‘A3’]
    7、查看所有列名:DataFrame对象名.columns
    8、重命名列名:DataFrame对象名.columns = [‘语’, ‘数’, ‘外’]
    9、将行列数据进行转置:DataFrame对象名.T
    10、查看前n条数据:DataFrame对象名.head(n) # 如果总数据不足n条,不会报错,会给出所有数据
    11、查看后n条数据:DataFrame对象名.tail(n)
    12、查看行数和列数:DataFrame对象名.shape
    13、查看行数:DataFrame对象名.shape[0]
    14、查看列数:DataFrame对象名.shape[1]
    15、查看详细信息(索引、数据类型、非空值数量和内存信息):DataFrame对象名.info()

  • DataFrame的重要函数
    注:下面用df表示DataFrame对象名
    1、查看每列的描述统计信息(返回数据还是DataFrame类型):df.describe().round(2) # round(2)是保留两位小数,在这可加可不加
    2、返回每列非空值数量:df.count()
    3、返回每列的合计:df.sum()
    4、返回每列的最大值:df.max()
    5、返回每列最小值:df.min()
    6、返回最大值的索引号(返回的是默认索引):df[列名].argmax()
    7、返回最小值的索引号(返回的是默认索引):df[列名].argmin()
    8、返回最大值的索引名(返回的是自定义索引):df[列名].idxmax()
    9、返回最小值的索引名(返回的是自定义索引):df[列名].idxmin()
    10、返回每列平均值:df.mean()
    11、返回每列中位数:df.median()
    12、返回方差:df.var()
    13、返回某一列方差:df[列名].var()
    14、返回标准差:df.std()
    15、检查df中的空值(两种):df.isnull() # df.notnull()


总结:

  • 在DataFrame中的很多属性和函数都是通过列来进行操作的,所以在DataFrame中列可以看作一个基本单位

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

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

相关文章

MySQL基础(二十五)InnoDB数据存储结构

1 数据库的存储结构:页 索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作…

在外Windows公网远程连接MongoDB数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 转载自远程内网穿透的文章:公网远…

友元函数,友元类,内部类及其之间的关系,匿名对象等

TIPS 当某一个类当中有自定义类型成员变量的时候,然后对该类的实例化对象调用函数的时候走初始化列表的时候,如果说要对自定义类型成员变量进行初始化列表初始化的时候,尽管那个自定义类型它的构造函数是没有参数的,但是此时括号…

数据剖析更灵活、更快捷,火山引擎 DataLeap 动态探查全面升级

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近期,火山引擎 DataLeap 上线“动态探查”能力,为用户提供全局数据视角、完善的抽样策略,提高数据探查的灵活度以及响应速率。 …

【STL模版库】string类:模拟实现string类

一、成员变量 private:char *_str;size_t _size;size_t _capacity;public:static size_t npos -1; //编译报错,不能在类中初始化const static size_t npos -1; //[1]const char* c_str() const{ //[2]return _str;}size_t size() const{return _size;} size_t ca…

智慧水务云平台助力“十四五”水安全保障规划!

一、《“十四五”水安全保障规划》 水利部印发《“十四五”水安全保障规划》,规划中指出,“十四五”期间要抓好8个方面重点任务。 一是实施国家节水行动,强化水资源刚性约束。 二是加强重大水资源工程建设,提高水资源优化配置能…

Mongo执行计划explain分析

3.0+的explain有三种模式,分别是:queryPlanner、executionStats、allPlansExecution。现实开发中,常用的是executionStats模式。 1.使用方式 在查询语句后面加上explain("executionStats") db.user.find({"roleCodes":"xsbj","status&…

详细操作Selenium自动化测试之中的断言

Selenium常用的断言包括 页面属性断言:断言标题、url或页面源码中是否包含或不包含特定字符元素存在断言:断言指定元素存在图片及链接断言:断言图片正常显示、链接可以正常打开 页面属性断言 这是最常用的断言方式,可以用来断言…

TTL转HDMI 1.4,性能提升,pin to pin 芯片LT8618SXB

1. 描述 LT8618SX 是 Lontium 的低功耗版本 HDMI 发射器,其基于 ClearEdgeTM 技术。它支持 24 位色深 HDMI 1.4(高清多媒体接口)规范。它们与 Lontium 的第一代 HDMI 发射器 LT8618EX 完全向后兼容。 LT8618SX 是一款高性能、低功耗器件…

干货分享!9大Python常用技巧!

介绍 Python 炫酷功能(例如,变量解包,偏函数,枚举可迭代对象等)的文章层出不穷。但是还有很多 Python 的编程小技巧鲜被提及。因此,本文会试着介绍一些其它文章没有提到的小技巧,这些小技巧也是…

csgo搬砖项目,时间自由,项目包下车,包落地

Steam是一款全球较大的综合性数字游戏软件发行平台。steam同时在线飙到3300万!超越你说熟悉的王者,吃鸡!用户多,竞争者少,连我自己都没想到,有一天我居然可以靠着steam游戏搬砖来赚钱养活自己。 实话实说&a…

计算机基础--->数据结构(1)【图的存储和遍历】

文章目录 图图的存储图的搜索(无向无权图)代码演示 图 图中包含 顶点、边、度,无向图,有向图,无权图,带权图,其中 度表示一个顶点包含多少条边,有出度和入度。 图的存储 邻接矩阵 代…

【LeetCode】13,罗马数字转整数。 难度等级:简单。知识点:map和unordered_map的区别

文章目录 一、题目二、初级解法:顺序遍历字符串我的解法(语法平平无奇)语法接近 三、精妙解法:逆序遍历字符串四、知识点:map和unordered_map的区别 LeetCode 第13题,罗马数字转整数;难度等级&a…

大厂视频面试,因为截屏作废

大厂视频面试现在这么严格了么?无意间按到截屏直接显示面试作废,好在最后和HR解释了下,再约时间重新面。 作为一个面试过3、4家大厂,现在在鹅厂工作的过来人来说,上面遇到的这个问题是AI面,不用太担心&…

React项目总结:上一步的终点,下一步的起点

项目简介 本人利用 react18.2 json-server 做了一个后台管理系统。 包含: 用户管理权限管理站内信审核管理站内信发布管理 等内容。 其中涉及到react-router V6.0的使用以及一些权限控制等内容。 更多精彩内容,请微信搜索“前端爱好者“&#xff…

Makefile基础教程(函数的使用)

文章目录 前言一、自定义函数1.使用示例2.注意事项 二、预定义函数1.call函数2.abspath函数 总结 前言 在Makefile中也是存在函数的,在 Makefile 中,可以使用函数调用来处理变量、字符串和路径等操作。那么下面就来看看是如何在makefile中使用函数的吧。…

计算机网络基础(四)—— 什么是TCP/IP协议?是两种网络协议?

文章目录 01 | 🍓 概念 \color{red}{概念} 概念🍓02 | 🍊 T C P / I P 分层模型 \color{orange}{TCP/IP分层模型} TCP/IP分层模型🍊03 | 🍋 数据链路层协议 \color{yellow}{数据链路层协议} 数据链路层协议&#x1f34…

景区剧本杀小程序

景区剧本杀具有以下几个方面的前景: 景区旅游升级:随着人们对于景区旅游体验的多样化需求增加,景区剧本杀作为一种互动性强、参与感强的旅游体验项目,将会得到越来越多游客的喜爱和关注。 移动互联网应用:景区…

C++ 有元 内部类 匿名对象

有元 使用有元就可以突破封装,可以直接对类当中 私有的 成员 成员函数等等进行访问,在某一次上提供了遍历,但是这增大的 耦合性,破坏了封装,所以建议有元不要多用。 所谓耦合性就是 ,某两个 东西的 关系&a…

程序员开发Linux常用命令

本文对程序开发过程中常用的Linux命令进行总结,随时进行补充,属于科普篇,希望对大家有所帮助 file命令 该命令用于查看文件的基本信息,比如编码格式,文件类型等信息,对于可执行程序或者动态链接库文件&am…