pandas-轴axis理解

目录


之前写了一篇关于numpy的axis=?的理解,可以翻看numpy-轴axis理解

其实pandas中的axis与numpy一样,以二维数组为例:
axis = 0代表高维在变,低维不变,即[0][0]、[1][0]、[2][0]…以列为一组;
axis = 1代表高维不变,低维在变,即[0][0]、[0][1]、[0][2]…以行为一组。

那么为什么有时候在pandas中会遇到当axis = 0时,结果看似是以行为一组,当axis = 1时,以列为一组呢?

接下来用一个例子说明,只要按照高低维的方式去理解,就不会搞糊涂了。

导入数据:
在这里插入图片描述
我们想删除含有NaN的那一列数据,这里你可能会想,按照列删除,应该axis = 0啊。

其实只要你按照高低维的方式去想,当axis = 1时,高维不变,低维在变,即按照行为一组。
寻找每一行中有没有NaN值,有的话就删除该行对应位置的元素,通过对每一行的搜索,找到一个就删除一个,从上到下累叠一起就像是按列删除,其实是按行操作的。
在这里插入图片描述
同理,当axis = 0时,是按列操作,删除每一列中为NaN值对应位置的元素,从左到右叠在一起就像是按行删除,其实是按列操作的。
在这里插入图片描述
以下的部分,就比较好理解。

当axis = 1,按行操作,标题倒序排序。
在这里插入图片描述
axis = 0,按列操作,行索引升序排序。
在这里插入图片描述
axis = 1,按行操作,将z行内容降序排序。
在这里插入图片描述
axis = 0,按列操作,将e列内容降序排序。
在这里插入图片描述
求和操作。
在这里插入图片描述
总结:
1、pandas的axis与numpy的axis在理解上都是一样的,axis = 0代表高维在变,低维不变,即按照列操作;axis = 1代表高维不变,低维在变,即按照行操作。
2、对于删除drop、dropna操作,理解稍微难一点,其实原理是一样的,当axis = 0时,看似按行操作,其实是按列删除值;当axis = 1时,看似按列操作,其实是按行删除值。

发布了56 篇原创文章 · 获赞 34 · 访问量 3639

猜你喜欢

转载自blog.csdn.net/MicoOu/article/details/103989339