本文紧接着前一篇的入门教程,会介绍一些关于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
新闻热点
疑难解答