python .loc vs .iloc区别

1.loc意义:通过行标签索引行数据

例: loc[n]表示索引的是第n行(index 是整数)

loc[‘d’]表示索引的是第’d’行(index 是字符)

2. .iloc   :通过行号获取行数据,不能是字符

3.  ix——结合前两种的混合索引

三者区别:

ix / loc 可以通过行号和行标签进行索引,比如 df.loc[‘a‘] , df.loc[1], df.ix[‘a‘] , df.ix[1]

而iloc只能通过行号索引 , df.iloc[0] 是对的, 而df.iloc[‘a‘] 是错误的

建议:

当用行号索引的时候, 尽量用 iloc 来进行索引; 而用标签索引的时候用 loc ,  ix 尽量别用。

例:

import numpy as np

import pandas as pd

df=pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list(‘abc‘))print(df)

a    b    c
 0  0   2    4
1   6   8  10
2 12 14 16
3 18 20 22
4 24 26 28
5 30 32 34
6 36 38 40
7 42 44 46
8 48 50 52
9 54 56 58

print df.iloc[0] #输出第0行所有列内容

a 0
b 2
c 4
Name: 0, dtype: int32

print df.iloc[0:3] #输出0至3行所有列内容

     a     b    c

0  0     2    4
1  6     8  10
2 12 14 16

print df.iloc[1,2] #输出第一行第二列

  10

print df.iloc[1,‘c’]  #输出第一行第二列,因为用了标签索引,所以会报错

ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types

print df.loc[0,‘a‘]

0

print df.loc[0:3,[‘a‘,‘b‘]]

a   b
0    0  2
1   6   8
2 12 14
3 18 20

print df.loc[[1,5],[‘b‘,‘c‘]]

 b  c
1  8 10
5 32 34

为便于区分,所有屏幕输出结果,全部用斜体

原文地址:https://www.cnblogs.com/xinguichun/p/10992084.html

时间: 2024-10-11 09:25:10

python .loc vs .iloc区别的相关文章

pandas (loc、iloc、ix)的区别

loc:通过行标签索引数据 iloc:通过行号索引行数据 ix:通过行标签或行号索引数据(基于loc和iloc的混合) 1.使用loc.iloc.ix索引第一行数据: (1) loc (2) iloc (3) ix

loc、iloc、ix 区别

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

[Python] NotImplemented 和 NotImplementedError 区别

NotImplemented 是一个非异常对象,NotImplementedError 是一个异常对象. >>> NotImplemented NotImplemented >>> NotImplementedError <type 'exceptions.NotImplementedError'> >>> type(NotImplemented) <type 'NotImplementedType'> >>>

python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix

先手工生出一个数据框吧 [python] view plain copy import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc')) df 是这样子滴 那么这三种选取数据的方式该怎么选择呢? 一.当每列已有column name时,用 df [ 'a' ] 就能选取出一整列数据.如果你知道column names 和index,且两者都很

关于python中loc和iloc方法

pandas以类似字典的方式来获取某一列的值 import pandas as pd import numpy as np table = pd.DataFrame(np.zeros((4,2)), index=['a','b','c','d'], columns=['left', 'right']) print(table) 得到: 如果我们此时需要得到table列的值 例如:table['left'] 即可得到: 如果我们对于行感兴趣,这时候有两种方法,即 iloc 和 loc 方法 loc

iloc[[i]] 和 loc[[i]] 的区别

In [2]: df Out[2]: A B 0 1.068932 -0.794307 2 -0.470056 1.192211 4 -0.284561 0.756029 6 1.037563 -0.267820 8 -0.538478 -0.800654 In [5]: df.iloc[[2]] Out[5]: A B 4 -0.284561 0.756029 In [6]: df.loc[[2]] Out[6]: A B 2 -0.470056 1.192211 一个是按照index的序值.

DataFrame loc和iloc的区别

loc loc是select by label(name) loc函数是选择dataframe中那一行的index == k的 iloc loc是select by position loc函数是选择dataframe中第position行 举例 d1.loc[0] d1.iloc[0] 原文地址:https://www.cnblogs.com/woxiaosade/p/12229855.html

pandas中Loc vs. iloc vs. ix vs. at vs. iat?

loc: only work on indexiloc: work on positionix: You can get data from dataframe without it being in the indexat: get scalar values. It's a very fast lociat: Get scalar values. It's a very fast iloc

Python中POP()的区别

Python中列表,字典和Set都有pop函数,但参数略有区别如下:以下参数基于Python 3.4.1 1. List 1 >>> help(list.pop) 2 Help on method_descriptor: 3 4 pop(...) 5 L.pop([index]) -> item -- remove and return item at index (default last). 6 Raises IndexError if list is empty or ind