IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Python 中Dataframe初步理解,探讨参数Data,切片函数loc和iloc含义和应用,适合初学者 -> 正文阅读

[人工智能]Python 中Dataframe初步理解,探讨参数Data,切片函数loc和iloc含义和应用,适合初学者

Dataframe是pandas的模块最具代表的数据结果,其作用之强大溢于言表,下面我们分几个最常用的说一下.

?Dataframe中的切片loc,iloc;

? ? ? ? import pandas as pd

????????我们先说loc,基本上loc会了,iloc知道原理后自然就会了, 他们俩是一致的;

? ? ? ? Dataframe的定义和初始话,直接上几个例子更直接:

---------------------------------------------------------------1----------------------------------------------------------------------------------------------------------------

????????????????source=[[1,2,3],[4,5,6],[7,8,9]]?

????????????????col_arr=[‘a’,'b','c']

????????????????row_arr = ['aa','bb','cc']? ??

????????????????df = pd.Dataframe(data=source,columns=col_arr,index=row_arr)

???????????

abc
aa123
bb456
cc789

---------------------------------------------------------------2----------------------------------------------------------------

? ? ? ? ? ? df = pd.Dataframe(data=source,columns=col_arr)

? ? ? ? 如果没有设置行索引或者列所以,Dataframe将会自动用0,1,2,3...作为自动的行列索引

????????????????

abc
0123
1456
2789

---------------------------------------------------------------3----------------------------------------------------------------

????????df = pd.Dataframe(data=source)

012
0123
1456
2789

????????Dataframe的data参数,有一下几个类型:元组,列表,字典

? ? ? ? 当是一维元组的时候:df = pd.Dataframe(data=(1,2,3))

????????当是一维列表的时候:df = pd.Dataframe(data=[1,2,3])

????????当是二维元组的时候:df = pd.Dataframe(data=((1,2,3)))

????????当是二维列表的时候:df = pd.Dataframe(data=[[1,2,3]])

?可以看出当都是一维的时候,参数data是元组还是列表,他俩构成的Dataframe都是一致的,可以混用

但是当都是二维的时候,元组表现出来的还是一列,但是列表确实一行,这就是区别,知道区别了,自己慢慢体会下,((1,2,3),(4,5,6)) 和[[1,2,3],[4,5,6]]分别可以构成什么样的矩阵呢?大家可以自己试一下。

?

让大家纳闷的是,结果并不是按照上面能推理出来的,二维的元组和列表构建成的Dataframe的矩阵看起来又是一样的。记住,知道怎么用就OK了,没必要知道为什么。-_-

在说一下参数data是字典的情况:

????????pd.DataFrame(data={'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})

对于这种{'a':xx,'b':xx}字段作为data的参数,字典的key就是列索引名,如果没有指定index的话,行所以就是默认的0,1,2,3...

提醒一下,这个时候就不能指定列索引(columns)了,否则会error

?还有一些list和Dictionary,元组混合作为参数的,大家有兴趣可以自己试一下

初始化讲完了,我们来看下具体用法。

? ? ? ? Dataframe可以理解为是二维矩阵,或者说是一个二维数组,loc最大的作用就是标记了这个二维矩阵行索引列索引,因为可以更好的对这个二维数字进行分析和切割;

loc的定义是?loc[rows_index,columns_index]

如果想取矩阵中某一个元素, df.loc['aa','b']? #返回 2

我们列举了一下几个功能:拿上面初始化第一个例子说一下

abc
aa123
bb456
cc789

? ? ? ? 取一行数据?

df.loc['aa']  #返回的是series类型的数据集
df.loc['aa',] #返回的是series类型的数据集
df.loc['aa',:] #返回的是series类型的数据集
df.loc[['aa']] #返回的是Dataframe类型的数据集
df.loc[['aa'],] #返回的是Dataframe类型的数据集
df.loc[['aa'],:] #返回的是Dataframe类型的数据集

?看code找规律,我想这个很简单,总结一下就是

? ? ? ? ? ? ? ? 1.? ? ? ? loc只有第一个参数,第二个参数是空,或者: 表示是取一行的数据,第一个参数就是行索引的索引名

? ? ? ? ? ? ? ? 2.? ? ? ? 第一个参数是单索引名,返回时series类型的数据集,当时用[]list集合时,返回的是Dataframe的数据集

? ?同样的方法我们取一列:

df.loc[:,'a'] #返回的是series类型的数据集
df.loc[:,['a']] #返回的是Dataframe类型的数据集

? ? ? ? ? ?同样找到一些规律:

? ? ? ? ? ? ? ? 1.? ? ? ? 第一个参数一定要有:,表示是所有的行

? ? ? ? ? ? ? ? 2.? ? ? ? 第二个参数可以是一个单索引名,返回时series类型的数据集, ? 当时用[]list集合时,返回的是Dataframe的数据集??

单行单列都知道怎么取,那多行多列更简单了,无非就是用[]list,多加行或者列的索引,因为是list作为参数,取出来的是Dataframe类型的数据集

例如:

df.loc[['aa','bb']] #返回的是aa,bb两行组合Dataframe类型的数据集
df.loc[['aa','bb'],:] #同上
df.loc[,['a','b']] #返回的是a,a两列组合Dataframe类型的数据集
df.loc[:,['a','b']] #同上

说完loc,大致有点了解,那么iloc就容易多了

我们知道loc是通过用户自定义行或者系统自定义列索引来进行对矩阵做分析和处理的,那iloc则不是,他是通过0,1,2,3...数字的形式

df = pd.Dataframe(data=[[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','c'],index=['aa','bb','cc'])
	a	b	c
aa	1	2	3
bb	4	5	6
cc	7	8	9

取一行数据:
#loc 是用自定义的索引取数据
    pf.loc['a']
    pf.loc[['a']] 
#loc 是0,1,2,3...来取索引,即使你定义df的时候定义了行(index)和列(colnmns) 也不会用,仍然用 0,1,2,3...当作索引值 
    pf.iloc[0]
    pf.iloc[[0]]

Dataframe的支持点很多,具体还是要实体操作一下才知道他的强大,本人第一次写东西记录一下,有错误的地方希望给与指出,一起进步,谢谢-__-?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:02:40  更:2021-12-03 13:02:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/27 12:29:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码