公司做网站要花多少钱,织梦手机网站有广告位,泸州百拓网站建设,制作一份网站建设的简要任务执行书Pandas库中有iloc和loc以及ix可以用来索引数据#xff0c;抽取数据。但是方法一多也容易造成混淆。下面将一一来结合代码说清其中的区别。1. iloc和loc的区别#xff1a;iloc主要使用数字来索引数据#xff0c;而不能使用字符型的标签来索引数据。而loc则刚好相反#xff0…Pandas库中有iloc和loc以及ix可以用来索引数据抽取数据。但是方法一多也容易造成混淆。下面将一一来结合代码说清其中的区别。1. iloc和loc的区别iloc主要使用数字来索引数据而不能使用字符型的标签来索引数据。而loc则刚好相反只能使用字符型标签来索引数据不能使用数字来索引数据不过有特殊情况当数据框dataframe的行标签或者列标签为数字loc就可以来其来索引。好先上代码先上行标签和列标签都为数字的情况。import pandas as pdimport numpy as npa np.arange(12).reshape(3,4)print a[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]]df pd.DataFrame(a)print df0 1 2 30 0 1 2 31 4 5 6 72 8 9 10 11print df.loc[0]0 01 12 23 3Name: 0, dtype: int32print df.iloc[0]0 01 12 23 3Name: 0, dtype: int32print df.loc[:,[0,3]]0 30 0 31 4 72 8 11print df.iloc[:,[0,3]]0 30 0 31 4 72 8 11接下来是把行标签[0, 1, 2]改成[a, b, c]则成这样了。df.index [a,b,c]print df0 1 2 3a 0 1 2 3b 4 5 6 7c 8 9 10 11print df.loc[0]# TypeError: cannot do label indexing on with these indexers [0] of print df.iloc[0]0 01 12 23 3Name: a, dtype: int32print df.iloc[a] # TypeError: cannot do positional indexing on with these indexers [a] of print df.loc[a] # 正确0 01 12 23 3Name: a, dtype: int32同样地把列标签[0, 1, 2, 3]改成[A, B, C, D]则成这样了。df.columns [A,B,C,D]print dfA B C Da 0 1 2 3b 4 5 6 7c 8 9 10 11print df.loc[:,A]a 0b 4c 8Name: A, dtype: int32print df.iloc[:,A] # ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types2.ix是一种混合索引字符型标签和整型数据索引都可以。print df.ix[0]A 0B 1C 2D 3Name: a, dtype: int32print df.ix[a]A 0B 1C 2D 3Name: a, dtype: int32print df.ix[:,0]a 0b 4c 8Name: A, dtype: int32print df.ix[:,A]a 0b 4c 8Name: A, dtype: int32以上这篇详谈Pandas中iloc和loc以及ix的区别就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持脚本之家。