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=columns)#生成一个数据框

#print df.loc[‘a‘]
‘‘‘
c    1
d    2
e    3
‘‘‘

print df.loc[0]
#这个就会出现错误
‘‘‘
TypeError: cannot do label indexing on <class ‘pandas.indexes.base.Index‘>
with these indexers [1] of <type ‘int‘>
‘‘‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

(2)iloc

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=columns)#生成一个数据框

print df.iloc[0]
‘‘‘
c    1
d    2
e    3
‘‘‘
print df.iloc[‘a‘]
‘‘‘
TypeError: cannot do positional indexing on <class ‘pandas.indexes.base.Index‘>
with these indexers [a] of <type ‘str‘>
‘‘‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

(3)ix

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=columns)#生成一个数据框

print df.ix[0]
‘‘‘
c    1
d    2
e    3
‘‘‘
print df.ix[‘a‘]
‘‘‘
c    1
d    2
e    3
‘‘‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2、分别使用loc、iloc、ix 索引第一列的数据:

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=columns)#生成一个数据框

print df.loc[:,[‘c‘]]

print df.iloc[:,[0]]

print df.ix[:,[‘c‘]]

print df.ix[:,[0]]
#结果都为
‘‘‘
   c
a  1
b  4
‘‘‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3、分别使用loc、iloc、ix 索引多行的数据:

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=columns)#生成一个数据框

print df.loc[‘a‘:‘b‘]

print df.iloc[0:1]

print df.ix[‘a‘:‘b‘]

print df.ix[0:1]
#结果都为
‘‘‘
   c  d  e
a  1  2  3
b  4  5  6
‘‘‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

4、分别使用loc、iloc、ix 索引多列的数据:

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=columns)#生成一个数据框

print df.loc[:,‘c‘:‘d‘]

print df.iloc[:,0:2]

print df.ix[:,‘c‘:‘d‘]

print df.ix[:,0:2]
#结果都为
‘‘‘
   c  d
a  1  2
b  4  5
‘‘‘转自 https://blog.csdn.net/hecongqing/article/details/61927615

原文地址:https://www.cnblogs.com/NewsunLs/p/9201007.html

时间: 2024-10-31 04:45:47

loc、iloc、ix 区别的相关文章

pandas 定位 loc,iloc,ix

In [114]: df Out[114]: A B C D 2018-06-30 0.318501 0.613145 0.485612 0.918663 2018-07-31 0.614796 0.711491 0.503203 0.170298 2018-08-31 0.530939 0.173830 0.264867 0.181273 2018-09-30 0.009428 0.622133 0.933908 0.813617 2018-10-31 0.126368 0.981736 0.

Python Pandas DataFrame:查询数据or选择数据(selection)之loc,iloc,at,iat,ix的用法和区别

在操作DataFrame时,肯定会经常用到loc,iloc,at等函数,各个函数看起来差不多,但是还是有很多区别的,我们一起来看下吧. 首先,还是列出一个我们用的DataFrame,注意index一列,如下: 接下来,介绍下各个函数的用法: 1.loc函数 愿意看官方文档的,请戳这里,这里一般最权威. loc函数是基于"标签"选择数据的,但是也可以接受一个boolean的array,对于每个用法,我们一一举例: 1.1 单个label 接受一个"标签"(label)

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 -ix loc iloc

原文地址:https://www.cnblogs.com/xiaxiaoai/p/8143636.html

Pandas常用功能总结

1.读取.csv文件 df2 = pd.read_csv('beijingsale.csv', encoding='gb2312',index_col='id',sep='\t',header=None) 参数解析见:https://www.cnblogs.com/datablog/p/6127000.html index_col用于指定用作行索引的列编号或者列名,sep用于指定文件的分隔符(默认是以,作为分隔符),header=None 不用文件的的第一行作为列索引 文件读取之后生成的是一个D

Python pandas 0.19.1 Indexing and Selecting Data文档翻译

最近在写个性化推荐的论文,经常用到Python来处理数据,被pandas和numpy中的数据选取和索引问题绕的比较迷糊,索性把这篇官方文档翻译出来,方便自查和学习,翻译过程中难免很多不到位的地方,但大致能看懂,错误之处欢迎指正~ Python pandas 0.19.1 Indexing and Selecting Data 原文链接 http://pandas.pydata.org/pandas-docs/stable/indexing.html 数据索引和选取 pandas对象中的轴标签信息

构建了一个简单的时间序列数据集来说明索引功能

数据索引和选取 pandas对象中的轴标签信息有很多作用: 使用已知指示来确定数据(即提供元数据),这对于分析.可视化以及交互式控制台的显示都十分重要 使能够实现自动和显式的数据对齐 允许直观地获取和设置数据集的子集 在这一部分,我们将致力于最终的目的:即如何切片,切丁以及一般地获取和设置pandas对象的子集.文章将主要集中在Series和DataFrame上,因为它们潜力很大.希望未来在高维数据结构(包括panel)上投入更多的精力,尤其是在基于标签的高级索引方面. 提示:Python和bu

pandas 新手指引

# 10 Minutes to pandas pandas入门教程,面向新手,如需高级教程,移步[pandas cookbook](http://pandas.pydata.org/pandas-docs/stable/cookbook.html#cookbook) 按照约定,一般按照如下形式对pandas进行导入 import pandas as pd import numpy as np import matplotlib.pyplot as plt # 使用ipython notebook