首页 > 编程 > Python > 正文

Python 数据处理库 pandas进阶教程

2020-02-22 23:48:17
字体:
来源:转载
供稿:网友

前言

本文紧接着前一篇的入门教程,会介绍一些关于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

在入门教程中,我们已经提到了这两个操作符:

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: int64

df1.iloc[2:3]=
  note weekday
3    E     Wed
4    F     Thu

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表