Pandas数据分析(上)|一文读懂Series和DataFrame

前言

本文主要介绍Pandas中两个重要的数据结构:Series 和 DataFrame。二者在pandas数据分析与处理中是使用最多的数据结构。

因此,学习Pandas这两个重要的数据结构,对于使用Python进行数据分析与处理非常重要。

Series

Series介绍

Series是一个有索引(或者说标签)的由同一类型数据组成的一组数据,其数据是一维的。

Pandas数据分析(上)|一文读懂Series和DataFrame

Series创建

Series创建:使用pd.Series()创建对象。

pd.Series(
    data=None,#可以为列表、元组、字典、numpy.ndarray
    index=None,#可省略,省略后默认从0开始创建
    dtype=None,
    name=None,
    copy=False,
    fastpath=False,
)

显示给出index则为显式索引,没有显式给出索引index则系统默认提供一个从0开始递增的索引。

显式索引:即定义/创建时给出的index。

隐式索引:系统默认提供一个从0开始递增的整数索引。

例子-新建Series,给定索引index

Pandas数据分析(上)|一文读懂Series和DataFrame

上例,显式索引为a、b、 c、 d ,隐式索引为 0、 1、 2、 3.

例子-新建Series,省略index

Pandas数据分析(上)|一文读懂Series和DataFrame

未给出显式索引,系统会自动创建从0开始递增的索引。

Series属性

Series.index 获取/查看索引(index)部分

Series.values 获取/查看数据(data)部分

查看index和values属性

Pandas数据分析(上)|一文读懂Series和DataFrame

Series操作

索引访问与切片

  • Series支持显示/隐式index索引访问数据与切片操作。
  • Sereis 提供索引方式iloc和loc访问数据。

显式/隐式index数据访问及切片

s = pd.Series(data=list('春眠不觉晓'),
              index=list('abcde'))
print(s['c']) # 显式index读数据
print(s[2])   # 隐式index读数据
print('--------')
print(s['a':'d']) #显式index切片
print(s[0:3]) #隐式index切片

Pandas数据分析(上)|一文读懂Series和DataFrame

⬆️注意区分Series显式index切片和隐式index切片的不同之处,显示索引是闭合,隐式索引切片同Python切片。

索引方式iloc和loc

  • Series.loc[ 显式索引 ]
  • Series.iloc[ 隐式索引 *]
s.loc['c'] #Series.loc-显式索引
s.iloc[2] #Seried.iloc-隐式索引
s.loc['a':'c'] #切片
s.iloc[0:2] #切片

Pandas数据分析(上)|一文读懂Series和DataFrame

loc和iloc切莫混用显式和隐式索引,否则会报错。

Pandas数据分析(上)|一文读懂Series和DataFrame

index支持in判断

Series可使用显式index做in操作,判断Series中有无该index。

Pandas数据分析(上)|一文读懂Series和DataFrame

更新index次序

Series.reindex(index=None)

调整显式index次序,返回一个新的Series,reindex不改变原Series对象。

此外更新的index为原来已存在的,如果index不存在则对应的value为NaN。

Pandas数据分析(上)|一文读懂Series和DataFrame

DataFrame

DataFrame介绍

DataFrame 是一种类似表格的二维数据结构的对象。DataFrame 既有行索引也有列索引,它可以被看做是一组共用index的Series组成的二维数据。

Pandas数据分析(上)|一文读懂Series和DataFrame

DataFrame创建

DataFrame创建的根据数据的来源,可以将DataFramec创建分为两种

第一种:直接创建/定义 (这种方式实际很少用)

pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

例-直接创建/定义

import pandas as pd
import numpy as np
x = pd.DataFrame(data=np.arange(0,20).reshape(4,5),
                index=list('ABCD'),
                columns=list('金木水火土'))

Pandas数据分析(上)|一文读懂Series和DataFrame

第二种:从外部文件中读取/导入(常用方式)

panda可以导入以下各种数据格式:

  1. CSV 2.EXCEL 3.SQL

4.HTML 5.Json 6.pdf 等

对应的pandas方法形如pd.read_xxxx(),如读取csv为pd.read_csv()、excel为pd.read_excel()。

#从CSV
pd.read_csv(
    filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]],
    sep=',',
    delimiter=None,
    header='infer',
    names=None,
    index_col=None
    )

例-从文件中导入

Pandas数据分析(上)|一文读懂Series和DataFrame

DataFrame属性

  • index 行索引
  • columns 列名/列索引名
  • shape 数据形状
  • dtype 查看数据类型

例-查看上图DataFrame的属性

Pandas数据分析(上)|一文读懂Series和DataFrame

DataFrame操作

访问数据

访问整行或整列数据以及访问指定行列位置的数据,访问数据可分为两类,即 通过列columns访问通过index行访问

通过列访问:根据使用列名的方式不同可以分为:列名 作为下标访问或者列名 作为属性访问

例-列名作为下标访问数据

Pandas数据分析(上)|一文读懂Series和DataFrame

例-列名作为属性访问数据

Pandas数据分析(上)|一文读懂Series和DataFrame

通过行访问: loc[显式index]iloc[隐式index],以及ix[]

iloc行用隐式index访问行,即行为整数

loc 行用显式名访问(如果定义了行名)

ix 混用,即行列可以用隐式或者显式(该方法已过时)

例-loc[显式index]访问行数据

Pandas数据分析(上)|一文读懂Series和DataFrame

例-使用iloc[隐式index]访问行数据

Pandas数据分析(上)|一文读懂Series和DataFrame

例-ix[行索引 ,列索引],访问指定位置数据

Pandas数据分析(上)|一文读懂Series和DataFrame

由于ix的方式已经过时,因此通过行与列访问指定数据,一般建议loc 和 iloc的方式。

删除数据

使用drop()方法删除数据。drop()方法默认不修改数据本身,如果inplace=True 则会修改原数据。

x.drop(
    labels=None,
    axis=0,
    index=None,
    columns=None,
    level=None,
    inplace=False,
    errors='raise',
)

例-删除指定行

Pandas数据分析(上)|一文读懂Series和DataFrame

例-删除指定列

Pandas数据分析(上)|一文读懂Series和DataFrame

–End–

Pandas数据分析(上)|一文读懂Series和DataFrame

分享

Original: https://blog.csdn.net/weixin_42147780/article/details/125135496
Author: 金融科技自习生
Title: Pandas数据分析(上)|一文读懂Series和DataFrame

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762001/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 实用的Python案例

    Python是目前最流行的语言之一,它在数据科学、机器学习、web开发、脚本编写、自动化方面被许多人广泛使用。它的简单和易用性造就了它如此流行的原因。 在本文中,我们将会介绍 30…

    Python 2023年5月24日
    065
  • 【中秋系列】天上掉月饼啦,还不赶紧捡!基于Pygame的中秋小游戏!

    好消息!下一个假期已经在路上了,正在向我们招手呢! 大家只要再坚持5天 就能迎来中秋小长假啦~ 又是一年中秋至!快跟着小编来看看怎么寓教于乐吧~~ 今天带大家编写一款应时应景的中秋…

    Python 2023年9月24日
    058
  • django中序列化器字段参数、关联字段(补充)

    一、PrimaryKeyRelatedField 1、可以定义PrimaryKeyRelatedField来获取关联表的外键值 2、如果通过父表获取从表数据, 默认需要使用从表模型…

    Python 2023年8月6日
    046
  • Windows10彻底关闭自动更新

    文章目录 前言 无赖 步骤 * 关闭自动更新服务 关闭自动更新策略 效果 总结 前言 在写这篇总结之前,我已经尝试过多次关闭 Win10的自动更新了,一般来说更新之后可以使操作系统…

    Python 2023年11月5日
    031
  • python实现Excel多行多列的转换

    目录前言一、使用需求二、使用步骤1.引入库2.读入数据3.将需要合并的列的列名先放在列表中4.填充空值为05.添加新列,把待合并的所有列变成一个大字符串(传入函数处理)6.删除合并…

    Python 2023年8月7日
    088
  • 全面解析PaDiM

    使用PaDiM网络跑自己的数据集,除去测试时读入dataloader的时间,每张图片测试时间在20-30ms,精度比较高,图像分类准确率99-100,像素分割准确率97以上,但是最…

    Python 2023年9月15日
    044
  • 用Python写一个微信提醒备忘录

    Original: https://www.cnblogs.com/123456feng/p/16141901.htmlAuthor: 蚂蚁ailingTitle: 用Python…

    Python 2023年5月24日
    072
  • 04_Django-模板变量/标签/过滤器/继承-url反向解析

    04_Django-模板变量/标签/过滤器/继承-url反向解析 视频🔗:https://www.bilibili.com/video/BV1vK4y1o7jH博客🔗:https:…

    Python 2023年11月9日
    040
  • 【MySQL】数据库机房架构与跨城容灾详解(实战篇)(MySQL专栏启动)

    📫作者简介: 小明java问道之路,专注于研究 Java/ Liunx内核/ C++及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发…

    Python 2023年9月15日
    069
  • 第149篇 笔记-web3

    定义:Web3是基于去中心化原则的互联网新革命。Web3将当今丰富的交互式数字体验与为用户提供所有权和加密保证的基础设施相结合。 最近在传统技术部门和区块链生态系统的行业领导者中,…

    Python 2023年11月8日
    042
  • pygame之surface

    Surface定义 Surface是一块矩形显示区域,用来显示任意图像,具有固定的宽、高、像素格式。粗略可以理解为画布,可以在上面绘制图像。此外还可以将一个Surface作为图像复…

    Python 2023年9月18日
    052
  • pandas DataFrame 按照30s 向下取整

    print(ss[‘time’]) 0 2014-01-21 03:31:111 2014-01-21 04:53:552 2014-01-21 05:16:183 2014-01…

    Python 2023年8月8日
    039
  • numpy详解,小艾笔记

    一个在python中做科学计算的基础库,重在数值计算、也是大部分python 科学计算库的基础库,多用于大型,多维数组上的科学运算 目录 一、numpy中常见的数据类型 二、arr…

    Python 2023年8月25日
    055
  • MINIST手写数字数据集–神经网络(mini-batch)

    1.1 数据集介绍 MNIST 数据集主要由一些手写数字的图片和相应的标签组成,图片一共有10 类,分别对应从0~9 ,共10 个阿拉伯数字。 1.2 思路介绍 导入数据集 对导入…

    Python 2023年9月29日
    077
  • 爬虫单张图片

    (一)创建python项目 1.创建CrawlerDemo爬虫项目 ; (二)安装所需库 1、安装requests库在终端执行命令:pip install requests2、安装…

    Python 2023年8月4日
    052
  • WuThreat身份安全云-TVD每日漏洞情报-2022-12-23

    漏洞名称:Foxit PDF阅读器代码执行漏洞级别:高危漏洞编号:CVE-2022-28672,CNNVD-202207-1542相关涉及:Foxit PDF Reader漏洞状态…

    Python 2023年9月15日
    039
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球