pandas iloc()函数

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

loc函数:通过行索引 "Index" 中的具体值来取行数据(如取"Index"为"A"的行

iloc函数:通过行号来取行数据(如取第二行的数据

本文给出loc、iloc常见的五种用法,并附上详细代码。

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


 
 
  1. import numpy as np
  2. import pandas as pd
  3. #创建一个Dataframe
  4. data=pd.DataFrame(np.arange( 16).reshape( 4, 4),index=list( 'abcd'),columns=list( 'ABCD'))
  5. In[ 1]: data
  6. Out[ 1]:
  7. A B C D
  8. a 0 1 2 3
  9. b 4 5 6 7
  10. c 8 9 10 11
  11. d 12 13 14 15
  12. #取索引为'a'的行
  13. In[ 2]: data.loc[ 'a']
  14. Out[ 2]:
  15. A 0
  16. B 1
  17. C 2
  18. D 3
  19. #取第一行数据,索引为'a'的行就是第一行,所以结果相同
  20. In[ 3]: data.iloc[ 0]
  21. Out[ 3]:
  22. A 0
  23. B 1
  24. C 2
  25. D 3

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


 
 
  1. In[ 4]:data.loc[:,[ 'A']] #取'A'列所有行,多取几列格式为 data.loc[:,['A','B']]
  2. Out[ 4]:
  3. A
  4. a 0
  5. b 4
  6. c 8
  7. d 12
  8. In[ 5]:data.iloc[:,[ 0]] #取第0列所有行,多取几列格式为 data.iloc[:,[0,1]]
  9. Out[ 5]:
  10. A
  11. a 0
  12. b 4
  13. c 8
  14. d 12

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


 
 
  1. In[ 6]:data.loc[[ 'a', 'b'],[ 'A', 'B']] #提取index为'a','b',列名为'A','B'中的数据
  2. Out[ 6]:
  3. A B
  4. a 0 1
  5. b 4 5
  6. In[ 7]:data.iloc[[ 0, 1],[ 0, 1]] #提取第0、1行,第0、1列中的数据
  7. Out[ 7]:
  8. A B
  9. a 0 1
  10. b 4 5

 

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


 
 
  1. In[ 8]:data.loc[:,:] #取A,B,C,D列的所有行
  2. Out[ 8]:
  3. A B C D
  4. a 0 1 2 3
  5. b 4 5 6 7
  6. c 8 9 10 11
  7. d 12 13 14 15
  8. In[ 9]:data.iloc[:,:] #取第0,1,2,3列的所有行
  9. Out[ 9]:
  10. A B C D
  11. a 0 1 2 3
  12. b 4 5 6 7
  13. c 8 9 10 11
  14. d 12 13 14 15

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


 
 
  1. In[ 10]: data.loc[data[ 'A']== 0] #提取data数据(筛选条件: A列中数字为0所在的行数据)
  2. Out[ 10]:
  3. A B C D
  4. a 0 1 2 3
  5. In[ 11]: data.loc[(data[ 'A']== 0)&(data[ 'B']== 2)] #提取data数据(多个筛选条件)
  6. Out[ 11]:
  7. A B C D
  8. a 0 1 2 3

同时,以下几种写法也可提取数据所在的行,与第五种用法类似,仅作补充。


 
 
  1. In[ 12]: data[data[ 'A']== 0] #dataframe用法
  2. In[ 13]: data[data[ 'A'].isin([ 0])] #isin函数
  3. In[ 14]: data[(data[ 'A']== 0)&(data[ 'B']== 2)] #dataframe用法
  4. In[ 15]: data[(data[ 'A'].isin([ 0]))&(data[ 'B'].isin([ 2]))] #isin函数
  5. Out[ 15]:
  6. A B C D
  7. a 0 1 2 3

利用loc函数的时候,当index相同时,会将相同的Index全部提取出来,优点是:如果index是人名,数据框为所有人的数据,那么我可以将某个人的多条数据提取出来分析;缺点是:如果index不具有特定意义,而且重复,那么提取的数据需要进一步处理,可用.reset_index()函数重置index

同样:at与iat函数可抽取指定行列的值,详情见博文(DataFrame中at、iat函数详解

最后:本博文中loc与iloc函数可提取指定行列数据,删除Dateframe指定行列数据可参考博主下列博文(点击跳转)

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值