有时候,用于处理的数据可能是分块保存的,有可能保存在多个文件中。这时候,就需要使用连接方法pd.concat()进行连接。
concat()方法需要指定轴,默认是y轴连接,如果需要x轴连接,可以指定axis=1。
同时,也可以使用join函数进行合成。其中join是横向连接,而append函数是将参数传入DataFrame的纵向追加到源数据。
concat使用的是等值连接,键默认为第一列,也可以指定。如果两列表数据没有共同的列,也会成功进行纵向连接,缺失数据会记为NaN
接下来学习Stack函数,这个函数可以将DataFrame这个二维表表示为一个嵌套的Series,其实就类似于二维数组在内存中的存储,先存行,再存列。
再来看看另一个非常强大的功能Groupby,用于进行统计。
groupby之后,相当于就是把源数据中大量的数据变成了几个组的数据。但是,groupby使用之后,获取的并不是DataFrame对象,而是一个中间对象DataFrameGroupBy对象。为什么不是直接获取结果,因为DataFrameGroupBy对象并没有舍弃原始数据,而是在原始数据中加入了分组信息。
DataFrameGroupBy对象的子对象也是DataFrameGroupBy对象,而且,这种对象是无法输出的,无论是使用print,还是直接在调试终端输入。
当对DataFrameGroupBy对象使用mean方法时,程序才会开始计算每组的平均值,然后再转换为DataFrame对象。
不即时运算而是生成中间对象的原因,就是因为这个中间对象还能进行很多种类的数值计算,比如求和。还有agg。
agg操作,就是为DataFrameGroupBy的各列每列指定一个处理方法,比如A列求一个中位数,B列求一个平均数等等。
groupby也可以使用一组列作为输入,此时,转换为的数据就会以多维表来进行表示。
组合起来,就可以计算最大存活率。