Pandas中df.loc[]与df.iloc[]的用法与异同 

目录
  • 官网资料:
  • 用 途:
  • 输入参数注意:
  • loc与iloc 实际用例:

官网资料:

loc  :https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html
iloc  : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html

用 途:

  • 取数: 从dataframe中取 一部分行与列的数据 (为主)
  • 赋值: 给指定的 行与列赋值 df.loc[xx,xx] = xx

输入参数注意:

方括号内的参数:

  • loc、iloc 方括号中,参数的排布模式为[行条件,列条件],当总体条件只有一个时候(最外层方括号内无逗号),会按照:先行后列的方法来匹配对应的条件
  • 默认会抛弃掉对应的dataframe格式,输出series,如果想保留dataframe格式,需要在条件外边加 ”[ ]”。

loc与iloc条件(行/列)相同之处:

  • 单一元素(不包含list) str/int/slice 选取行时候,选取的是对应条件下的行 (series)
  • 单一元素(不包含list) str/int/slice 选取列时候,选取的是对应条件下的列(series)
  • 条件为list时候,选取的是一组对应的 行(列) 条件下的(dataframe数据)
  • 布尔值的list/可与df对齐的series(布尔类型): 与index长度相同的话 选择对应值为True的行,与列数相同的话,选取对应值为True 的列。
  • df的index的子集index2: 选取df中对应的index2的行
  • 函数:输入为行/列series(外层有逗号)或者dataframe(外层无括号) 返回为对应输入的一个布尔值表,用来筛选对应的数据。

不同之处:

  • 当对应的行/列标签为 int类型x时候,iloc表示对应的第x个 index或column,而loc 表示对应的index /column名称等于这个x。
  • 对应的开闭区间不同  df.loc[1:5,1:5] 会有一个最多 5x5的df数据子集,而df.iloc[1:5,1:5] 会有最多4x4df数据子集,其中iloc的行/列切片不包含最后一个数(与range函数类似)

loc与iloc 实际用例:

df = pd.DataFrame([[1, 2,3,14], [4, 5,6,17], [7, 8,9,10],[11,12,13,14]],
     index=[2,3,4,5],
     columns=[2,4,5,6])
  
# loc 行/列条件是对应的标签值在对应的范围内,[闭合,闭合] 区间
df.loc[2:5,2:5]
#   输出为:
#    2    4    5
#2    1    2    3
#3    4    5    6
#4    7    8    9
#5    11    12    13
 
# 选取index 为 2 的行里面的值
# 不推荐:df.loc[2] 下文省略
df.loc[2,:]
# 输出为  1,2,3,14 series类型
 
# 选取index 为 2 的行 保留dataframe类型
df.loc[[2],:] 
 
#选取对应列名为 2 的列
df.loc[:,2] 
# 这里 index 与 列名都是int类型,因此loc方括号中使用int类型,如果是其他类型,对应的数字要改成其他类型的数据,不能再用数字
 
# iloc 行/列条件是对应的标签或者列名的索引值在范围内,[闭合,开放) 区间
df.iloc[2:5,2:5]
# 输出为 
#    5     6
#4     9     10
#5     13     14
 
# 这里 索引是以0开始的,所有行的切片应该写作 0:5  也可以写作“ :”
# iloc 数字类型来做筛选的
 
# 不管是loc 还是 iloc 都建议用[行条件,列条件] 来写,其中如果无需筛选可以用:来占位,表意明确。
# loc 匹配的是 index/列名的值 与对应的条件
# iloc 匹配的是 index/列名对应的索引号 与对应的条件

到此这篇关于Pandas中df.loc[]与df.iloc[]的用法与异同 的文章就介绍到这了,更多相关Pandas df.loc[]与df.iloc[]内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]

    1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据选取的方式基本一致,本文主要以Dataframe为例进行介绍. 在Dataframe中选取数据大抵包括3中情况: 1)行(列)选取(单维度选取):df[].这种情况一次只能选取行或者列,即一次选取中,只能为行或者列设置筛选条件(只能为一个维度设置筛选条件). 2

  • Pandas中df.loc[]与df.iloc[]的用法与异同 

    目录 官网资料: 用 途: 输入参数注意: loc与iloc 实际用例: 官网资料: loc  :https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.htmliloc  : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html 用 途: 取数: 从dataframe中取 一

  • pandas中提取DataFrame某些列的一些方法

    目录 前言 方法一:df[columns] 方法二:df.loc[]:用 label (行名或列名)做索引. 方法三:df.iloc[]: i 表示 integer,用 integer location(行或列的整数位置,从0开始)做索引. 补充:提取所有列名中包含“线索”.“浏览”字段的列 参考: 总结 前言 在处理表格型数据时,一行数据是一个 sample,列就是待提取的特征.怎么选取其中的一些列呢?本文分享一些方法. 使用如下的数据作为例子: import pandas as pd dat

  • 对pandas中iloc,loc取数据差别及按条件取值的方法详解

    Dataframe使用loc取某几行几列的数据: print(df.loc[0:4,['item_price_level','item_sales_level','item_collected_level','item_pv_level']]) 结果如下,取了index为0到4的五行四列数据. item_price_level item_sales_level item_collected_level item_pv_level 0 3 3 4 14 1 3 3 4 14 2 3 3 4 14

  • 详谈Pandas中iloc和loc以及ix的区别

    Pandas库中有iloc和loc以及ix可以用来索引数据,抽取数据.但是方法一多也容易造成混淆.下面将一一来结合代码说清其中的区别. 1. iloc和loc的区别: iloc主要使用数字来索引数据,而不能使用字符型的标签来索引数据.而loc则刚好相反,只能使用字符型标签来索引数据,不能使用数字来索引数据,不过有特殊情况,当数据框dataframe的行标签或者列标签为数字,loc就可以来其来索引. 好,先上代码,先上行标签和列标签都为数字的情况. import pandas as pd impo

  • pandas中.loc和.iloc以及.at和.iat的区别说明

    显示索引和隐式索引 import pandas as pd df = pd.DataFrame({'姓名':['张三','李四','王五'],'成绩':[85,59,76]}) 传入冒号':',表示所有行或者列 显示索引:.loc,第一个参数为 index切片,第二个为 columns列名 df.loc[2] #index为2的记录,这里是王五的成绩. df.loc[:,'姓名'] #第一个参数为冒号,表示所有行,这里是筛选姓名这列记录. 隐式索引:.iloc(integer_location)

  • python pandas中索引函数loc和iloc的区别分析

    目录 前言 1.直接使用行或者列标签 2.loc函数 3.iloc函数 总结 前言 使用pandas进行数据分析的时候,我们经常需要对DataFrame的行或者列进行索引.使用pandas进行索引的方法主要有三种:直接使用行或者列标签.loc函数和iloc函数. 举个简单的例子: import numpy as np import pandas as pd df = pd.DataFrame({"Fruits":["apple","pear",&

  • Python Pandas中loc和iloc函数的基本用法示例

    目录 1 loc和iloc的含义 2 用法 2.1 loc函数的用法 2.2 iloc函数的用法 补充:Pandas中loc和iloc函数实例 总结 1 loc和iloc的含义 loc表示location的意思:iloc中的loc意思相同,前面的i表示integer,所以它只接受整数作为参数. 2 用法 import pandas as pd import numpy as np # np.random.randn(5, 2)表示返回5x2的矩阵,index表示行的编号,columns表示列的编

  • 聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明

    loc和iloc的意思 首先,loc是location的意思,和iloc中i的意思是指integer,所以它只接受整数作为参数,详情见下面. loc和iloc的区别及用法展示 1.区别 loc works on labels in the index. iloc works on the positions in the index (so it only takes integers). 2.用法展示 首先创建一个dataframe: 1)loc为Selection by Label函数,即为

  • 浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)

    pandas为我们提供了多种切片方法,而要是不太了解这些方法,就会经常容易混淆.下面举例对这些切片方法进行说明. 数据介绍 先随机生成一组数据: In [5]: rnd_1 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_2 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_3 = [random.randrange(1,20) for x in xrange(1

随机推荐