Pandas的 loc iloc ix 区别

来源:互联网 发布:微信网页授权跨域php 编辑:程序博客网 时间:2024/06/04 20:57
[python] view plain copy
  1. import pandas as pd    
  2. data = [[1,2,3],[4,5,6]]    
  3. index = [0,1]    
  4. columns=['a','b','c']    
  5. df = pd.DataFrame(data=data, index=index, columns=columns)    
  6.   
  7. 1. loc——通过行标签索引行数据  
  8. df.loc[1]    
  9. '''''''  
  10. a    4  
  11. b    5  
  12. c    6  
  13. '''    
  14.   
  15. 1.2 loc[‘d’]表示索引的是第’d’行(index 是字符)  
  16. import pandas as pd    
  17. data = [[1,2,3],[4,5,6]]    
  18. index = ['d','e']    
  19. columns=['a','b','c']    
  20. df = pd.DataFrame(data=data, index=index, columns=columns)    
  21. df.loc['d']    
  22. '''''''  
  23. a    1  
  24. b    2  
  25. c    3  
  26. '''    
  27.   
  28. 1.3 如果想索引列数据,像这样做会报错  
  29. print df.loc['a']    
  30. '''''''  
  31. KeyError: 'the label [a] is not in the [index]'  
  32. '''    
  33.   
  34. 1.4 loc可以获取多行数据  
  35. print df.loc['d':]    
  36. '''''''  
  37.    a  b  c  
  38. d  1  2  3  
  39. e  4  5  6  
  40. '''    
  41.   
  42. 1.5 loc扩展——索引某行某列  
  43.   
  44. print df.loc['d',['b','c']]    
  45. '''''''  
  46. b    2  
  47. c    3  
  48. '''    
  49.   
  50. 1.6 loc扩展——索引某列  
  51.   
  52. print df.loc[:,['c']]    
  53. '''''''  
  54.    c  
  55. d  3  
  56. e  6  
  57. '''    
  58.   
  59. 当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。  
  60.   
  61. 需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。  
  62.   
  63. 2. iloc——通过行号获取行数据  
  64.   
  65. 2.1 想要获取哪一行就输入该行数字  
  66.   
  67. df.iloc[1]    
  68. '''''''  
  69. a    4  
  70. b    5  
  71. c    6  
  72. '''    
  73.   
  74. 2.2 通过行标签索引会报错  
  75.   
  76. print df.iloc['a']    
  77. '''''''  
  78. TypeError: cannot do label indexing on <class 'pandas.core.index.Index'> with these indexers [a] of <type 'str'>  
  79. '''    
  80.   
  81. 2.3 同样通过行号可以索引多行  
  82.   
  83. df.iloc[0:]    
  84. '''''''  
  85.    a  b  c  
  86. d  1  2  3  
  87. e  4  5  6  
  88. '''    
  89.   
  90. 2.4 iloc索引列数据  
  91.   
  92. df.iloc[:,[1]]    
  93. '''''''  
  94.    b  
  95. d  2  
  96. e  5  
  97. '''    
  98.   
  99. 3. ix——结合前两种的混合索引  
  100.   
  101. 3.1 通过行号索引  
  102.   
  103. df.ix[1]    
  104. '''''''  
  105. a    4  
  106. b    5  
  107. c    6  
  108. '''    
  109.   
  110. 3.2 通过行标签索引  
  111.   
  112. df.ix['e']    
  113. '''''''  
  114. a    4  
  115. b    5  
  116. c    6  
  117. '''    
原创粉丝点击