10分钟快速入门Pandas库

news2024/11/23 21:07:34

pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,这篇文章主要介绍了10分钟快速入门Pandas库,重点介绍pandas常见使用方法,结合实例代码介绍的非常详细,需要的朋友可以参考下

目录

Pandas的介绍

pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

  • 2008年WesMcKinney开发出的库

  • 专门用于数据挖掘的开源python库

  • 以Numpy为基础,借力Numpy模块在计算方面性能高的优势

  • 基于matplotlib,能够简便的画图

  • 独特的数据结构

数据处理的时候经常性需要整理出表格,在这里介绍pandas常见使用:

参考链接:10 minutes to pandas https://pandas.pydata.org/docs/user_guide/10min.html#min

数据结构

Pandas常见的就两种数据类型:Series和DataFrame,可以对应理解为向量和矩阵,前者是一维的,后者是二维的。在DF中类似统计学中的数据组织方式,一行代表一项数据,一列代表一种特征,用这种方式记忆能够帮你更好理解DF。需要注意的是:在DF中index是行,column是列。

导入导出数据

常使用.csv格式的文件,我们在导入数据的时候使用pd.read_csv(),在导出数据的时候用df.write_csv(“/data/ymz.csv”).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# 读入数据

In [144]: pd.read_csv("foo.csv")

Out[144]:

Unnamed: 0 A B C D

0 2000-01-01 0.350262 0.843315 1.798556 0.782234

1 2000-01-02 -0.586873 0.034907 1.923792 -0.562651

2 2000-01-03 -1.245477 -0.963406 2.269575 -1.612566

3 2000-01-04 -0.252830 -0.498066 3.176886 -1.275581

4 2000-01-05 -1.044057 0.118042 2.768571 0.386039

.. ... ... ... ... ...

995 2002-09-22-48.017654 31.474551 69.146374-47.541670

996 2002-09-23-47.207912 32.627390 68.505254-48.828331

997 2002-09-24-48.907133 31.990402 67.310924-49.391051

998 2002-09-25-50.146062 33.716770 67.717434-49.037577

999 2002-09-26-49.724318 33.479952 68.108014-48.822030

[1000rows x 5columns]

1

2

# 写出数据

In [143]: df.to_csv("foo.csv")

对数据进行操作

对数据操作包括增(创建),删,改,查。

增加数据(创建数据)

相比较Series,我们更常使用DataFrame数据类型,常使用的创建DataFrame类型有两种,一种是使用data创建(注意data得是一个二维list/array等),一种是使用字典创建。

1. 使用data创建DF

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# 使用data导入

In [5]: dates =pd.date_range("20130101", periods=6)

In [6]: dates

Out[6]:

DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',

'2013-01-05', '2013-01-06'],

dtype='datetime64[ns]', freq='D')

In [7]: df =pd.DataFrame(data=np.random.randn(6, 4), index=dates, columns=list("ABCD"))

In [8]: df

Out[8]:

A B C D

2013-01-01 0.469112-0.282863-1.509059-1.135632

2013-01-02 1.212112-0.173215 0.119209-1.044236

2013-01-03-0.861849-2.104569-0.494929 1.071804

2013-01-04 0.721555-0.706771-1.039575 0.271860

2013-01-05-0.424972 0.567020 0.276232-1.087401

2013-01-06-0.673690 0.113648-1.478427 0.524988

2. 使用字典创建DF

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# 使用字典

In [9]: df2 =pd.DataFrame(

...: {

...: "A": 1.0,

...: "B": pd.Timestamp("20130102"),

...: "C": pd.Series(1, index=list(range(4)), dtype="float32"),

...: "D": np.array([3] *4, dtype="int32"),

...: "E": pd.Categorical(["test", "train", "test", "train"]),

...: "F": "foo",

...: }

...: )

...:

In [10]: df2

Out[10]:

A B C D E F

0 1.02013-01-02 1.0 3 test foo

1 1.02013-01-02 1.0 3 train foo

2 1.02013-01-02 1.0 3 test foo

3 1.02013-01-02 1.0 3 train foo

3. 增加一行数据

1)使用loc在行尾增加

增加一行数据的方法有loc, iloc, append, concat, merge。这里介绍一下loc,loc[index]是在一行的最后增加数据。但是你需要注意loc[index]中的index,如果与已出现过的index相同,则会覆盖原先index行,若不相同则才会增加一行数据。

2)使用concat将两个DF合并

concat()也是一个增加数据常用的方法,常见于两个表的拼接与爬虫使用中,作用类似于append(),但是append()将在不久后被pandas舍弃,所以还是推荐使用concat()。

4. 增加一列数据

增加一列数据的方法直接用[]便可,例子如下:

Series用的比较少,案例如下:

1

2

3

4

5

6

7

8

9

10

11

In [3]: s =pd.Series([1, 3, 5, np.nan, 6, 8])

In [4]: s

Out[4]:

0 1.0

1 3.0

2 5.0

3 NaN

4 6.0

5 8.0

dtype: float64

删除数据

对于删除数据,我们使用drop()方法,并指定参数为index(行)或者column(列)

1. 删除一行数据

2. 删除一列数据

改动数据

改动一行,列数据常用loc()和[]方法。

1. 改动一行数据

改动一行我们使用loc[]=[…]进行更改。

2. 改动一列数据

改动一列数据我们使用[]进行更改。

查找数据

在查找数据的时候,我们常使用[]来查看行列数据,配合.T来将矩阵转置。也可以使用head(),tail()来查看前几行和后几行数据。

1. 查看特定行数据

使用.loc[index]来查看特定行数据,或者[]。建议使用.loc[]方法或者.iloc[]方法,loc[]通过行的名字寻找,iloc[]通过索引寻找。

使用类似[0:2]来查看特定行数据,和python中list使用类似。这个方法其实是调用了__getitem__()方法

2. 查看特定列数据

我们需要使用两层[]嵌套来访问数据,例如[ [“j”, “i”] ]。

3. 查看特定元素

确定第几行第几列后,使用.loc()方法或者.iloc()方法查找。

1

b =a.loc[ 1, "dir_name"]

常用操作

数据分析时常用的两个操作,转置和计算统计量。

1. 转置

使用.T便可以完成。

2. 计算统计量

使用.describe()。

3. 舍弃一列中多余重复数据

使用.drop_duplicates()

1

id_df =self.frames_meta_sub[['time_idx', 'pos_idx', 'slice_idx']].drop_duplicates()

4. 将特定列转成numpy后处理

使用.to_numpy()方法将你所选择的数据全部转成二维的或者一维的ndarray,需要注意的是to_numpy()并不仅仅局限于数字,字符串也是可以转换的(虽然这样开销比较大),ndarray能存储字符串,这会让你处理数据的过程变得异常简单。有几个维度取决于你取了几行或者几列。

1

2

df =df[ ["channel"] ]

ar =df.to_numpy()

5. 取出dataframe中特定位置的值

要取出 DataFrame 中特定位置的值,可以使用 .loc 或 .iloc 方法,具体取决于您想要使用的索引类型。

如果您使用标签索引(例如,行和列都使用标签名称),则可以使用 .loc 方法。例如,如果您有一个名为 df 的 DataFrame,它具有行标签为 row_label,列标签为 column_label 的元素,则可以使用以下代码获取该元素的值:

1

value =df.loc[row_label, column_label]

如果您使用整数位置索引(例如,行和列都使用整数位置),则可以使用 .iloc 方法。例如,如果您有一个名为 df 的 DataFrame,它具有第一个行和第一个列的元素,则可以使用以下代码获取该元素的值:

1

value =df.iloc[0, 0]

请注意,索引从零开始,因此第一个行和第一个列的位置为 0。

到此这篇关于10分钟快速入门Pandas库的文章就介绍到这了。

点击拿去

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

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

相关文章

其实一点不难学会这三步一定让你学会制作一个『3D建模』大屏

上次已经教过大家怎样制作一个简单的2D数据可视化大屏~那有一些朋友们就会说那些炫酷的3D可视化大屏是怎样制作的呢?这不就来了,今天就教大家怎样用山海鲸可视化软件制作一个带3D建模的可视化大屏,并且最重要的是无需会特别复杂的3D建模知识。…

数据结构与算法之爬楼梯动态规划

一.题目(爬楼梯)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬…

playQueue 和 segmentQueue解析

文章目录 前提分析时序图常见问题结论前提 一个playlist有4段每段大概2秒每段走http下载大概500ms每段大小500KB左右分析时序图 如果网络情况很理想的话,基本上一直保持在playQueue为4,segmentQueue为1。如果网络特别差的情况下,基本上playQueue为1,segmentQueue为4。当网络…

中科检测赴中科院广州电子CASAIM开展座谈会,围绕3D打印、三维扫描和精密测量展开深入交流

2月9日,中科检测技术服务(广州)股份有限公司(简称:中科检测)一行到访中科院广州电子技术有限公司,参观广东省增材制造工程实验室和三维扫描及精密测量重点实验室,就3D打印、三维扫描和精密测量相关技术内容…

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(7)

目录 模块A 基础设施设置与安全加固 一、项目和任务描述: 二、服务器环境说明 三、具体任务(每个任务得分以电子答题卡为准) A-1任务一:登录安全加固 1.密码策略(Windows,Linux) a.设置最…

2023年排名前茅的十大饭店装修设计!

相信大家都是知道的,饭店装修设计其实是一门很深的学问,只有掌握这门学问才能够打造出来精美的空间,因此饭店装修必须要有专业餐饮设计公司的设计师进行设计。但是在国内饭店装修设计公司那么多,饭店老板要如何选择呢?…

C语言--指针进阶1

目录回顾字符指针指针数组数组指针&数组名和数组名的区别数组指针的使用指针作为形参练习数组参数、指针参数一维数组传参二维数组传参一级指针传参二级指针传参回顾 指针的内容,我们在初级阶段已经有所涉及了,我们先来复习一下 指针就是个变量&am…

关于举办2023年中国可持续塑料峰会的通知

根据麦肯锡报道,如果塑料需求按照目前的趋势发展,到2030年,全球塑料废物量将从2016年的每年2.6亿吨增加到每年4.6亿吨,使已经严重的环境问题上升到一个全新的水平。目前世界塑料年产量超过3亿吨,为社会生产生活带来巨大…

数据结构与算法之最短路路径与最短路径和动态规划

If every unfolding we experience takes us further along in life, then, we are truly experiencing what life is offering.如果我们在人生中体验的每一次转变都让我们在生活中走得更远,那么,我们就真正的体验到了生活想让我们体验的东西。Do not tr…

【Java|golang】 1238. 循环码排列---格雷编码

给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,…,2^n-1) 的排列 p,并且满足: p[0] start p[i] 和 p[i1] 的二进制表示形式只有一位不同 p[0] 和 p[2^n -1] 的二进制表示形式也只有一位不同 示例 1: 输入:n 2, start …

Linux基础命令-netstat显示网络状态

文章目录 netstat 命令介绍 语法格式 基本参数 显示各列内容分析 1)netstat -a显示各列内容分析 2)netstat -r显示各列内容分析 3)netstat -i 显示各列内容分析 参考实例 1)显示系统网络状态的所有连接 2)…

Kubernetes之探针probe

deployment只保证pod的状态为running。如果pod状态是running,但是里面丢失了文件,导致用户不能访问数据,则deployment是不管用的,此时就需要probe来检测pod是否正常工作。 probe是定义在容器里的,可以理解为容器里加的…

python基于vue品牌首饰售卖平台

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发目录 开发语言:Python python框架:django/flask 软件版本:python 数据库:mysql 数据库工具:Navicat11 开发软件:PyCharmscode 项目介…

每日学术速递2.22

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.PriSTI: A Conditional Diffusion Framework for Spatiotemporal Imputation 标题:PriSTI:时空插补的条件扩散框架 作者:Mingzhe Liu, Han Huan…

mysql学习(复习)总结 - 索引机制及分类

mysql索引机制及分类1、索引简介2、索引机制2.1 红黑树(平衡二叉树)2.2 哈希2.3 平衡多路查找树(B-Tree)2.4 Btree2.5 不同数据结构的索引对比3、索引分类3.2 存储分类-聚簇、二级(辅助)索引3.2.1 聚簇(集)索引3.2.1.1 定义3.2.1.2 聚集索引的适用情形3.…

计算机网络(五):三次握手和四次挥手,TCP,UDP,TIME-WAIT,CLOSE-WAIT,拥塞避免,

文章目录零. TCP和UDP的区别以及TCP详解TCP是如何保证可靠性的TCP超时重传的原理TCP最大连接数限制TCP流量控制和拥塞控制流量控制拥塞控制TCP粘包问题一、三次握手和四次挥手二、为什么要进行三次握手?两次握手可以吗?三、为什么要进行四次挥手&#xf…

23.2.23 22湖北省赛 B

好久没打卡了, 随便找的个水题写 这题是简单难度的 ab1 所以可以找到固定规律, 通过手动模拟可以发现 假设两种水叫做a水和b水 先倒入a水 1:0 倒入b水 1:1 此时水杯为 倒出一半的混合物, 因为ab水互溶, 比例不变 再加入a水或者b水将容器填满 比例现在变为 3:1 混合之后再…

一文让你了解Docker的前世今生

Docker概述 Docker为什么会出现? 我们在开发一款产品的过程中一定是需要至少两套环境的:开发和生产。现在更多的公司都是在使用开发、测试、生产三套环境,我们对不同环境的配置和打包都是非常繁琐和复杂的,而且重复度很高&#…

代码随想录 || 回溯算法93 78 90

Day2493.复原IP地址力扣题目链接给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。例如&#…

高级信息系统项目管理(高项 软考)原创论文——成本管理(2)

1、如果您想了解如何高分通过高级信息系统项目管理师(高项)你可以点击链接: 高级信息系统项目管理师(高项)高分通过经验分享_高项经验 2、如果您想了解更多的高级信息系统项目管理(高项 软考)原创论文,您可以点击链接: