Pandas数据选取与处理 | 更文挑战
创建了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是一样的,打印输出结果如下:
接下来就以上面创建的data为例,讲解数据的选取、筛选、整体情况查看、运算、排序与删除等知识点。
(1)按列选取数据
先从简单的选取单列数据入手,代码如下。
a=data['c1']
a的打印输出结果如下
可以看到选取的数据不包含列索引信息,这是因为通过data['c1']选取一列时返回的是一个一维的Series类型的数据。通过如下代码可以返回一个二维的表格数据。
b=data[['c1']]
b的打印输出结果如下。
若要选取多列,需要在中括号[]中指定列表。例如,要选取c1和c3列,可以写为data[['c1','c3']]。需要注意的是,中括号[]中必须是一个列表,而不能是data['c1','c3']。代码如下。
c=data[['c1','c3']]
c的打印输出结果如下:
(2)按行选取数据
可以根据行序号来选取数据,代码如下。
a = data[1:3]
a的打印输出结果如下。
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的打印输出结果如下。
转载自:https://juejin.cn/post/6970129352247738381