《利用python進行資料分析》之整數索引
阿新 • • 發佈:2018-11-23
- 《利用python進行資料分析》之整數索引
# -*- coding: utf-8 -*- """ Created on Sat Nov 17 22:23:46 2018 @author: muli """ from pandas import Series,DataFrame import pandas as pd import numpy as np #整數索引 #操作由整數索引的pandas物件常常會讓新手抓狂, #因為他們跟內建的python資料結構(如列表和元組)在索引語義上有些不同。 #例如,你可能認為下面的程式碼不會報錯。 ser=Series(np.arange(3.)) print(ser) print("------") # 索引範圍是[0,2] print(ser[0]) print("++++++++++") #雖然pandas會“求助於”整數索引,但是沒有哪種方法能夠既不引入bug,又能解決問題的。 #我們有一個含有0,1,2的索引,但是很難推斷出使用者想要什麼: ser2=Series(np.arange(3.),index=['a','b','c']) print(ser2[-1]) print(ser.ix[:1]) print("++++++++++") #如果需要可靠的,不考慮索引型別的,基於位置的索引, #可以使用Series 的 iget_value 方法和DataFrame的irow和icol方法: ser3=Series(range(5), index=[-5,1,3,0,10]) print(ser3) print("======") # 報錯:'Series' object has no attribute 'iget_value' #print(ser3.iget_value(2)) #loc #print(ser3.loc(2)) print(ser3.iat[2]) print("*************************") print("*************************") frame=DataFrame(np.arange(6).reshape(3,2), index=[2,0,1]) print(frame) print("~~~~~~~~~~~~~~~~~~~") # 報錯:'DataFrame' object has no attribute 'icol' # 原因:icol is deprecated. #print(frame.icol(0)) #iloc[:, i] # 選取的是 列 #print(frame.iloc[:, 1]) # 選取的是 行 print(frame.iloc[1, :])