pandas loc 和iloc 源码和实例

版权声明:博文转载请说明原作者,违者不究 https://blog.csdn.net/qq_37928340/article/details/88682701

loc函数:通过行索引 "Index" 中的具体值来取某列数据

import numpy as np
import pandas as pd
#取5*5矩阵 index行索引,columns列索引,arange 0-24 reshape矩阵形状
data=pd.DataFrame(np.arange(25).reshape(5,5),index=list('abcde'),columns=list('ABCDE'))
print(data)

print('.....................................')

out:
    A   B   C   D   E
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14
d  15  16  17  18  19
e  20  21  22  23  24
.....................................
print(data.loc['a'])

out:
A    0
B    1
C    2
D    3
E    4
Name: a, dtype: int32

iloc函数:通过行号来取行数据

print('.....................................')

print(data.iloc[0:3])
.....................................  
out:
    A   B   C   D   E
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14

loc、iloc提取列数据

print(data.loc[:,['A']]) #取'A'列所有行,多取几列格式为 data.loc[:,['A','B']
    A
a   0
b   5
c  10
d  15
e  20
print(data.iloc[:,[0]]) #取第0列所有行,多取几列格式为 data.iloc[:,[0,1]])
    A
a   0
b   5
c  10
d  15
e  20

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

print(data.loc[['a','b'],['A','B']])#提取index为'a','b',列名为'A','B'中的数据
   A  B
a  0  1
b  5  6
print(data.iloc[[0,1],[0,1]]) #提取第0、1行,第0、1列中的数据   
   A  B
a  0  1
b  5  6

利用loc、iloc提取所有数据

print(data.loc[:,:]) #取A,B,C,D列的所有行 
   
    A   B   C   D   E
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14
d  15  16  17  18  19
e  20  21  22  23  24
print(data.iloc[:,:] )#取第0,1,2,3列的所有行

    A   B   C   D   E
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14
d  15  16  17  18  19
e  20  21  22  23  24

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

print(data.loc[data['A']==0])   
   A  B  C  D  E
a  0  1  2  3  4

猜你喜欢

转载自blog.csdn.net/qq_37928340/article/details/88682701
今日推荐