pandas.DataFrame里的loc和iloc什么区别?

  统计/机器学习 Python Pandas    浏览次数: 6616
3

最近在自学Python的pandas,loc和iloc搞得很头疼,一开始以为它们是一回事,所以程序老是出错,不是很明白它们的区别。希望请有经验的朋友讲一讲。谢谢!

 

可爱多   2017-02-28 09:57



   1个回答 
13

对于一个DataFrame A,A.loc[k]是读取A中index为k的那一行。A.iloc[k]是读取A中的第k行。

假设下面的DataFrame叫A    

A
      Name    Age

1     Tom      20

3     Tony    19

4     Jim      22


>>> A.loc[3]

Tony    19

>>>A.iloc[0]

Tom    20

>>>A.iloc[1]

Tony    19


A.loc[0]和A.loc[2]被抱错,没有index里没有0和2。同样,A.iloc[3]也会抱错,因为这里只有3行,iloc只能取到0,1,2.


SofaSofa数据科学社区 DS面经 问答 实战

高代兄   2017-03-07 01:09

大哥你是想说报错吧:) - KingBug   2017-03-07 10:29
终于搞明白了!之前折腾死了。。。谢谢 - 可爱多   2017-03-26 06:15
简洁明了:) - 划船全靠浪   2018-09-17 04:02


  相关主题

pandas.DataFrame更改列名   2回答

怎么在已有的dataframe中插入一个新列(Pandas)   2回答

pandas.DataFrame选取最后k行   2回答

pandas dataframe选择第k行   3回答

pandas DataFrame删除列的操作   1回答

返回DataFrame或者array的行数   2回答

pandas怎么把字符串'yyyymmdd'转换为时间对象   1回答

python里把数据中某一列中的na,nan,缺失值都替换成0?   1回答

pandas报错ValueError: Cannot convert non-finite values (NA or inf) to integer   1回答

pandas df.head()报错AttributeError: 'NoneType' object has no attribute 'head'   1回答

怎么添加pandas的dataframe到已有的csv文件,并且不覆盖原内容   1回答

pandas读取csv文件遇到UnicodeDecodeError   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!