本文緊接著前一篇的入門教程,會介紹一些關于pandas的進階知識。建議讀者在閱讀本文之前先看完pandas入門教程。
同樣的,本文的測試數據和源碼可以在這里獲取: Github:pandas_tutorial 。
在入門教程中,我們已經使用過訪問數據的方法。這里我們再集中看一下。
注:這里的數據訪問方法既適用于Series,也適用于DataFrame。
這是兩種最直觀的方法,任何有面向對象編程經驗的人應該都很容易理解。下面是一個代碼示例:
# select_data.pyimport pandas as pdimport numpy as npseries1 = pd.Series([1, 2, 3, 4, 5, 6, 7], index=["C", "D", "E", "F", "G", "A", "B"])print("series1['E'] = {} /n".format(series1['E']));print("series1.E = {} /n".format(series1.E));這段代碼輸出如下:
series1['E'] = 3
series1.E = 3
注1:對于類似屬性的訪問方式.來說,要求索引元素必須是有效的Python標識符的時候才可以,而對于series1.1這樣的索引是不行的。
注2:[]和.提供了簡單和快速訪問pands數據結構的方法。這種方法非常的直觀。然而,由于要訪問的數據類型并不是事先知道的,因此使用這兩種方法方式存在一些優化限制。因此對于產品級的代碼來說,pandas官方建議使用pandas庫中提供的數據訪問方法。
在入門教程中,我們已經提到了這兩個操作符:
loc:通過行和列的索引來訪問數據 iloc:通過行和列的下標來訪問數據注意:索引的類型可能是整數。
實際上,當DataFrame通過這兩個操作符訪問數據,可以只指定一個索引來訪問一行的數據,例如:
# select_data.pydf1 = pd.DataFrame({"note" : ["C", "D", "E", "F", "G", "A", "B"], "weekday": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]}, index=['1', '2', '3', '4', '5', '6', '7'])print("df1.loc['2']:/n{}/n".format(df1.loc['2']))這里通過索引'2'可以方法到第2行的所有數據,因此它的輸出如下:
df1.loc['2']:
note D
weekday Tue
Name: 2, dtype: object
除此之外,通過這兩個操作符我們還可以訪問某個范圍之內的數據,例如這樣:
# select_data.pyprint("series1.loc['E':'A']=/n{}/n".format(series1.loc['E':'A']));print("df1.iloc[2:4]=/n{}/n".format(df1.iloc[2:4]))這段代碼輸出如下:
series1.loc['E':'A']=
E 3
F 4
G 5
A 6
dtype: int64df1.iloc[2:3]=
note weekday
3 E Wed
4 F Thu
新聞熱點
疑難解答