likes
comments
collection
share

Pandas数据选取与处理 | 更文挑战

作者站长头像
站长
· 阅读数 41

创建了DataFrame格式的表格之后,就可以对其中的数据进行进一步的选取和处理,首先创建一个3行3列的DataFrame用于演示,行索引设定为r1、r2、r3,列索引设定为c1、c2、c3,代码如下。

import pandas as pd
data = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['r1','r2','r3'],columns=['c1','c2','c3'])

也可以通过二维数组创建DataFrame。这里以数字1为起点,数字10为终点(终点取不到),生成1~9共9个数字,作为DataFrame中的数据,代码如下。

data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=['r1','r2','r3'],columns=['c1','c2','c3'])

两种方法得到的data是一样的,打印输出结果如下:

Pandas数据选取与处理 | 更文挑战

接下来就以上面创建的data为例,讲解数据的选取、筛选、整体情况查看、运算、排序与删除等知识点。

(1)按列选取数据

先从简单的选取单列数据入手,代码如下。

a=data['c1']

a的打印输出结果如下

Pandas数据选取与处理 | 更文挑战

可以看到选取的数据不包含列索引信息,这是因为通过data['c1']选取一列时返回的是一个一维的Series类型的数据。通过如下代码可以返回一个二维的表格数据。

b=data[['c1']]

b的打印输出结果如下。

Pandas数据选取与处理 | 更文挑战

若要选取多列,需要在中括号[]中指定列表。例如,要选取c1和c3列,可以写为data[['c1','c3']]。需要注意的是,中括号[]中必须是一个列表,而不能是data['c1','c3']。代码如下。

c=data[['c1','c3']]

c的打印输出结果如下:

Pandas数据选取与处理 | 更文挑战

(2)按行选取数据

可以根据行序号来选取数据,代码如下。

a = data[1:3]

a的打印输出结果如下。

Pandas数据选取与处理 | 更文挑战

pandas库推荐使用iloc方法来根据行序号选取数据,这样更直观,不会像data[1:3]那样可能会引起混淆。代码如下。

b = data.iloc[1:3]

如果要选取单行,就必须用iloc方法。例如,选取倒数第1行,代码如下。

c = data.iloc[-1]

(3)按区块选取数据

如果想选取某几行的某几列数据,例如,选取c1和c3列的前两行数据,代码如下

a = data[['c1','c3']][0:2]

其实就是把前面按行和列选取数据的方法进行了整合,a的打印输出结果如下。

Pandas数据选取与处理 | 更文挑战

转载自:https://juejin.cn/post/6970129352247738381
评论
请登录