热线电话:13121318867

登录
2020-05-15 阅读量: 856
pandas里loc和iloc的区别是什么?

loc是根据index来索引,比如df定义了一个index,那么loc就根据这个index来索引对应的行。iloc并不是根据index来索引,而是根据行号来索引,行号从0开始,逐次加1。

1. 利用loc、iloc提取行数据

import numpy as np

import pandas as pd

#创建一个Dataframe

data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD'))

In[1]: data

Out[1]:

A B C D

a 0 1 2 3

b 4 5 6 7

c 8 9 10 11

d 12 13 14 15

#取索引为'a'的行

In[2]: data.loc['a']

Out[2]:

A 0

B 1

C 2

D 3

#取第一行数据,索引为'a'的行就是第一行,所以结果相同

In[3]: data.iloc[0]

Out[3]:

A 0

B 1

C 2

D 3

2. 利用loc、iloc提取列数据

In[4]:data.loc[:,['A']] #取'A'列所有行,多取几列格式为 data.loc[:,['A','B']]

Out[4]:

A

a 0

b 4

c 8

d 12

In[5]:data.iloc[:,[0]] #取第0列所有行,多取几列格式为 data.iloc[:,[0,1]]

Out[5]:

A

a 0

b 4

c 8

d 12

3.利用loc、iloc提取指定行、指定列数据

In[6]:data.loc[['a','b'],['A','B']] #提取index为'a','b',列名为'A','B'中的数据

Out[6]:

A B

a 0 1

b 4 5

In[7]:data.iloc[[0,1],[0,1]] #提取第0、1行,第0、1列中的数据

Out[7]:

A B

a 0 1

b 4 5

 

4.利用loc、iloc提取所有数据

In[8]:data.loc[:,:] #取A,B,C,D列的所有行

Out[8]:

A B C D

a 0 1 2 3

b 4 5 6 7

c 8 9 10 11

d 12 13 14 15

In[9]:data.iloc[:,:] #取第0,1,2,3列的所有行

Out[9]:

A B C D

a 0 1 2 3

b 4 5 6 7

c 8 9 10 11

d 12 13 14 15

5.利用loc函数,根据某个数据来提取数据所在的行

In[10]: data.loc[data['A']==0] #提取data数据(筛选条件: A列中数字为0所在的行数据)

Out[10]:

A B C D

a 0 1 2 3

In[11]: data.loc[(data['A']==0)&(data['B']==2)] #提取data数据(多个筛选条件)

Out[11]:

A B C D

a 0 1 2 3

原文链接:https://blog.csdn.net/w_weiying/java/article/details/81411257

28.4405
6
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子