首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pandas -为什么iloc和loc的输出不同

pandas是一个开源的数据分析和数据处理库,常用于处理结构化数据。在pandas中,iloc和loc是两个常用的索引方法,用于访问和操作DataFrame中的数据。

  1. iloc:iloc是基于整数位置进行索引的方法。它使用整数索引来选择DataFrame中的行和列。例如,df.iloc[0]表示选择第一行的数据,df.iloc[:, 0]表示选择第一列的数据。iloc的输出结果是根据整数位置进行选择的数据。
  2. loc:loc是基于标签进行索引的方法。它使用标签索引来选择DataFrame中的行和列。例如,df.loc[0]表示选择标签为0的行的数据,df.loc[:, 'column_name']表示选择名为'column_name'的列的数据。loc的输出结果是根据标签进行选择的数据。

iloc和loc的输出不同的原因是它们使用不同的索引方式。iloc使用整数位置索引,而loc使用标签索引。因此,当DataFrame的索引是整数位置时,iloc和loc的输出结果是相同的;当DataFrame的索引是标签时,iloc和loc的输出结果可能不同。

举例来说,假设有一个DataFrame df,其中索引为整数位置[0, 1, 2, 3],标签为['A', 'B', 'C', 'D'],列名为['col1', 'col2']。使用df.iloc[0]会选择第一行的数据,输出结果是根据整数位置索引的数据。而使用df.loc[0]会选择标签为0的行的数据,输出结果是根据标签索引的数据。因此,iloc和loc的输出结果不同。

对于pandas的使用,腾讯云提供了云原生数据库TDSQL、云数据库CDB、云数据仓库CDW等产品,可以帮助用户存储和处理大规模的结构化数据。您可以访问腾讯云官网了解更多关于这些产品的详细信息和使用案例。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

pandaslociloc_pandas loc函数

目录 pandas中索引使用 .loc 使用 .iloc使用 .ix使用 ---- pandas中索引使用 定义一个pandasDataFrame对像 import pandas as pd...使用 .loc[],中括号里面是先行后列,以逗号分割,行列分别是行标签列标签,比如我要得到数字5,那么就就是: data.loc["b","B"] 因为行标签为b,列标签为B,同理,那么4就是...那么,我们会想,那我们只知道要第几行,第几列数据呢,这该怎么办,刚好,.iloc就是干这个事 .iloc使用 .iloc[]与loc一样,中括号里面也是先行后列,行列标签用逗号分割,与loc不同之处是...,.iloc 是根据行数与列数来索引,比如上面提到得到数字5,那么用iloc来表示就是data.iloc[1,1],因为5是第2行第2列,注意索引从0开始,同理4就是data.iloc[0,1],...与loc不同loc前闭后闭,以及loc是根据行列标签,而.iloc是根据行数与列数 .ix使用 .ix我发现,上面两种用法他都可以,它既可以根据行列标签又可以根据行列数,比如拿到5 data.ix

1.2K10

pandas.DataFrame()中ilocloc用法

简单说: iloc,即index locate 用index索引进行定位,所以参数是整型,如:df.iloc[10:20, 3:5] loc,则可以使用column名index名进行定位,如...: df.loc[‘image1’:‘image10’, ‘age’:‘score’] 实例: import numpy as np import pandas as pd from pandas...0.508066 D 0.200248 0.192892 0.293228 ''' # 过滤 列 print(sub_df.iloc[1:2, 0:2]) # python用法一样,但是 该方法...是 基于 index 信息 ''' c1 c3 B 0.012703 0.048813 ''' # loc 方法, 通过label 名称来过滤 print(sub_df.loc['A':'B', 'c1...但是loc按照label标签取值则不是这样。如:[‘A’:‘C’] A,B,C 都会取出来。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

2.4K30
  • 详解pandasiloc, locix区别联系

    Pandas库十分强大,但是对于切片操作iloc, locix,很多人对此十分迷惑,因此本篇博客利用例子来说明这3者之一区别联系,尤其是ilocloc。..., 因为loc索引是label,显然在df1名字中没有叫0,12。...如果按照loc写法来写应该是:df2.iloc['e'],显然这样报错,因为iloc不认识label,它是基于位置。...0:1]) ''' a 0 1 1 4 ''' 3 ix ix操作比较复杂,在pandas版本0.20.0及其以后版本中,ix已经不被推荐使用,建议采用ilocloc实现ix。...到此这篇关于详解pandasiloc, locix区别联系文章就介绍到这了,更多相关pandas iloc loc ix内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

    88820

    pandaslociloc_pandas获取指定数据

    大家好,又见面了,我是你们朋友全栈君 实际操作中我们经常需要寻找数据某行或者某列,这里介绍我在使用Pandas时用到两种方法:ilocloc。...目录 1.loc方法 (1)读取第二行值 (2)读取第二列值 (3)同时读取某行某列 (4)读取DataFrame某个区域 (5)根据条件读取 (6)也可以进行切片操作 2.iloc方法 (1)...读取第二行值 (2)读取第二行值 (3)同时读取某行某列 (4)进行切片操作 ---- loc:通过行、列名称或标签来索引 iloc:通过行、列索引位置来寻找数据 首先,我们先创建一个...,"D","E"]] 结果: 2.iloc方法 iloc方法是通过索引行、列索引位置[index, columns]来寻找值 (1)读取第二行值 # 读取第二行值,与loc方法一样 data1...columns进行切片操作 # 读取第2、3行,第3、4列 data1 = data.iloc[1:3, 2:4] 结果: 注意: 这里区间是左闭右开,data.iloc[1:

    8.8K21

    超全pandas数据分析常用函数总结:下篇

    #pandas.DataFrame.loc pandas.DataFrame.iloc() 允许输入值:整数5、整数列表或数组[4,3,0]、整数切片对象1:7 更多关于pandas.DataFrame.iloc...6.2.2 用loc取不连续多行 提取索引值为2索引值为4所有行,即提取第3行第5行。 data.loc[[2,4]] 输出结果: ?...6.2.3 用loc取具体值 data.loc[6,"id"] 输出结果:107 6.2.4 用iloc取连续多行 提取第3行到第6行 data.iloc[2:6] 输出结果: ?...6.2.5 用iloc取连续多行多列 提取第3行到第6行,第4列到第5列值,取得是行列交叉点位置。 data.iloc[2:6,3:5] 输出结果: ?...6.2.6 用iloc取不连续多行多列 提取第3行第6行,第4列第5列交叉值 data.iloc[[2,6],[3,5]] 输出结果: ?

    4.9K20

    超全pandas数据分析常用函数总结:下篇

    #pandas.DataFrame.loc pandas.DataFrame.iloc() 允许输入值:整数5、整数列表或数组[4,3,0]、整数切片对象1:7 更多关于pandas.DataFrame.iloc...6.2.2 用loc取不连续多行 提取索引值为2索引值为4所有行,即提取第3行第5行。 data.loc[[2,4]] 输出结果: ?...6.2.3 用loc取具体值 data.loc[6,"id"] 输出结果:107 6.2.4 用iloc取连续多行 提取第3行到第6行 data.iloc[2:6] 输出结果: ?...6.2.5 用iloc取连续多行多列 提取第3行到第6行,第4列到第5列值,取得是行列交叉点位置。 data.iloc[2:6,3:5] 输出结果: ?...6.2.6 用iloc取不连续多行多列 提取第3行第6行,第4列第5列交叉值 data.iloc[[2,6],[3,5]] 输出结果: ?

    3.9K20

    Pandas中高效选择替换操作总结

    Pandas是数据操作、分析可视化重要工具,有效地使用Pandas可能具有挑战性,从使用向量化操作到利用内置函数,这些最佳实践可以帮助数据科学家使用Pandas快速准确地分析可视化数据。...例如,2011年,Chloe 这个名字在所有亚裔太平洋岛民女性新生儿中排名第二。 下面我们开始进入正题 为什么需要高效代码? 高效代码是指执行速度更快、计算容量更低代码。...,但是在执行效率方面有了很大不同。...使用.iloc[].loc[]选择行列 这里我们将介绍如何使用.iloc[] & .loc[] pandas函数从数据中高效地定位选择行。...[]函数可以更快地选择行列并且它比loc[]要快,但是loc[] 提供了一些更方便功能,如果速度不是优先考虑或者iloc[]实现比较麻烦的话,再考虑使用loc[]。

    1.2K30

    pandas简单介绍(3)

    4 pandas基本功能 4.1 重建索引(见上一篇文章) 4.2 数据选择 pandas数据选择是十分重要一个操作,它操作与数组类似,但是pandas数据选择与数组不同。...例如列表a[0, 1, 2, 3, 4]中,a[1:3]值为1,2;而pandas中为1,2,3。 数据选择方法:1、直接选择;2、使用loc选择数据;3、使用iloc选择数据。...进行选择:\n', frame.iloc[:, :3][frame.three > 5]) #使用iloc选择数据) 使用lociloc选择数据 ---- DataFrame索引选项 类型 描述...4.3 对象相加使用填充值算法 不同对象(SeriesDataFrame)之间算术行为是pandas提供一项重要功能。...,有时候我们把数据输出到excel并要求排序,我们就需要用到该操作。

    1.2K10

    Pandas】已完美解决:AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘

    Pandas中,我们可以使用 .loc 或 .iloc 来替代 ix。....loc 主要用于基于标签索引,而 .iloc 则用于基于整数位置索引。...使用 .loc 选择行列 # 使用.loc选择第一行第二列('B'列) result = df.loc[0, 'B'] print(result) # 输出:4 使用 .iloc 选择行列...0,第二列(索引为1,因为从0开始计数) print(result) # 输出:4 实战场景:选择多行多列 假设我们要选择DataFrame前两行列 ‘A’ 与 ‘B’: # 使用.loc选择前两行列...) 输出: A B 0 1 4 1 2 5 (注意:上面的切片:1实际上包括了索引为01行,因为切片是左闭右开) 五、注意事项 在编写Pandas代码时,请确保你了解你正在使用

    1.2K10

    pandas | 如何在DataFrame中通过索引高效获取数据?

    iloc用法几乎loc完全一样,唯一不同是,iloc接收不是index索引而是行号。我们可以通过行号来查找我们想要行,既然是行号,也就说明了固定死了我们传入参数必须是整数。...同样iloc也支持传入多个行号。 ? iloc也支持二维索引,但是对于列,我们也必须传入整数,也就是这个列对应列号。 ? loc不同iloc切片也是左闭右开。 ?...总结 今天主要介绍了lociloc逻辑索引在pandas当中用法,这也是pandas数据查询最常用方法,也是我们使用过程当中必然会用到内容。建议大家都能深刻理解,把它记牢。...很多人在学习pandas前期遇到最多一个问题就是会把ilocloc记混淆,搞不清楚哪个是索引查询哪个是行号查询。...曾经原本还有一个ix方法,可以兼顾ilocloc功能,既可以索引查询也可以行号查询。但是可惜是,在pandas最新版本当中这个方法已经被废弃了。

    13.1K10

    pandas中ix使用详细讲解

    在上一篇博客中,我们已经仔细讲解了ilocloc,只是简单了提到了ix。这是因为相比于前2者,ix更复杂,也更让人迷惑。...因此,本篇博客通过例子解释试图来描述清楚ix,尤其是与ilocloc联系。...(这句话有些绕口,没关系,关于ix特点,后面会详细讲解) 1 使用ix切分Series 请注意:在pandas版本0.20.0及其以后版本中,ix已经不被推荐使用,建议采用ilocloc实现ix。...这是为什么呢?这是由于ix复杂特点可能使ix使用起来有些棘手: 如果索引是整数类型,则ix将仅使用基于标签索引,而不会回退到基于位置索引。如果标签不在索引中,则会引发错误。...其它一个方法就可以实现上述功能: df.iloc[:df.index.get_loc('c') + 1, :4] x y z 8 a NaN NaN NaN NaN b NaN NaN NaN

    1.8K10

    猿创征文|数据导入与预处理-第3章-pandas基础

    [0]) print(df.iloc[-1]) #print(df.iloc[4]) print('单位置索引\n-----') # 单位置索引 # loc索引不同,不能索引超出数据行数整数位置...pandas中可以使用[]、lociloc、atiat这几种方式访问Series类对象DataFrame类对象数据。...使用lociloc访问数据 pandas中也可以使用lociloc访问数据。...与单层索引相比,分层索引只适用于[]、lociloc,且用法大致相同。 使用[]访问数据 由于分层索引索引层数比单层索引多,在使用[]方式访问数据时,需要根据不同需求传入不同层级索引。...使用lociloc访问数据 使用ilocloc也可以访问具有分层索引Series类对象或DataFrame类对象。

    14K20

    数据分析 ——— pandas基础(三)

    接着之前文章,在这里我们来看一些利用pandas处理文本数据,利用索引,loc, iloc,ix,属性选取数据 一、 处理文本数据 在这里我们用基本序列、索引来进行字符串操作 先大致了解一下我们将要用到函数...3 False dtype: bool """ 二、pandas索引,选择数据 1) loc[]函数:通过索引''index''中具体值来去行数据。...中括号里面是先行后列,以逗号分割,行列分别是行标签列标签。...# loc import pandas as pd import numpy as np # pandas 索引 # loc采用,为分隔符, 分隔两个单列 df = pd.DataFrame(np.random.randn...中括号里面也是先行后列,行列标签用逗号分割,与loc不同之处是,.iloc 是根据行数与列数来索引

    1.3K20

    数据整合与数据清洗

    可以直接用列名选择,也可以通过ix、ilocloc方法进行选择行、列。 ix方法可以使用数值或者字符作为索引来选择行、列。 iloc则只能使用数值作为索引来选择行、列。...# 返回pandas序列结构类 print(df['age']) print(df.age) print(df.ix[:, 'age']) print(df.loc[:, 'age']) # 返回pandas...ix、ilocloc方法都可使用。 只不过ixloc方法,行索引是前后都包括,而列索引则是前包后不包(与列表索引一致)。 iloc方法则列表索引一致,前包后不包。.../ 02 / 数据清洗 01 重复值处理 Pandas提供了查看删除重复数据方法,具体如下。...03 数据分箱 分箱法包括等深分箱(每个分箱样本数量一致)等宽分箱(每个分箱取值范围一致)。 其中Pandasqcut函数提供了分箱实现方法,默认是实现等宽分箱。

    4.6K30

    DataFrameSeries使用

    DataFrameSeries是Pandas最基本两种数据结构 可以把DataFrame看作由Series对象组成字典,其中key是列名,值是Series SeriesPython...loc方法传入行索引,来获取DataFrame部分数据(一行,或多行) df.loc[0] df.loc[99] df.loc[last_row_index] iloc : 通过行号获取行数据 iloc...传入是索引序号,loc是索引标签 使用iloc时可以传入-1来获取最后一行数据,使用loc时候不行 lociloc属性既可以用于获取列数据,也可以用于获取行数据 df.loc[[行],[列]...] df.iloc[[行],[列]] df.loc[:,['country','year','pop']] # 获取全部行,但每一行列内容接受三个 df.iloc[:,[0,2,4,-1]] df.loc...[:,[0,2,4,-1]] df.iloc[:,0:6:2] # 所有行, 第0 , 第2 第4列 可以通过行列获取某几个格元素 分组聚合运算 先将数据分组 对每组数据再去进行统计计算如

    10710

    pandas(ix & iloc &loc)区别

    loc——通过行标签索引行数据 iloc——通过行号索引行数据 ix——通过行标签或者行号索引行数据(基于lociloc 混合) 举例说明: 1、分别使用lociloc、ix 索引第一行数据...(基于lociloc 混合) ''' data=[[1,2,3],[4,5,6]] index=['a','b']#行号 columns=['c','d','e']#列号 df=pd.DataFrame...、iloc、ix 索引第一列数据: '''分别使用lociloc、ix 索引第一列数据''' import pandas as pd data=[[1,2,3],[4,5,6]] index=['...'' 3、分别使用lociloc、ix 索引多行数据: '''分别使用lociloc、ix 索引多行数据''' import pandas as pd data=[[1,2,3],[4,5,6]...3 b 4 5 6 ''' 4、分别使用lociloc、ix 索引多列数据: '''分别使用lociloc、ix 索引多列数据''' import pandas as pd data=[[

    83940
    领券