pandas中的axis参数(看其他人的博客中产生的疑问点,用自己的话解析出来)
axis有两个值:axis=0或者axis=1
看到很多资料都不太理解,把我个人理解说一下:
下面这张图,在很多资料中都看到了,我只能说先死记住 axis=0,代表跨行(注意看这张图的axis=0的箭头向下指),axis=1,代表跨列(注意看这张图的axis=1的箭头向右指,水平方向)
二维数据拥有两个轴:
0轴沿着行垂直往下走,1轴沿着列水平走
也可以说:
1.使用axis=0表示沿着行标签/索引值(index) 向下执行 #如果你学了pandas中的sreies就知道index了
2.使用axis=1表示沿着列标签水平方向执行 #列名columns
下面这两个问什么搞懂了,本篇文章的问题你基本上就懂了。
当axis=0,index,指的是遍历每个index,行号,在做sum()求和、mean()求平均值时,在纵向上遍历,是对每列数据做操作(看图片的箭头指向方向)。之前我在这也有疑问,最开始说axis=0是代表跨行的,这里为什么又说是对每列数据做操作。我的理解是每行取一个值,组成了一列,所以这里sum()就是获取一列数据的和。drop(index,axis=0),传入的参数是指定了某一行index,axios=0也是指跨行,所以说就去掉对应行号的所有值。
当axis=1,columns,指的是遍历每个columns,列名,在做sum()求和、mean()求平均值,在横向上遍历每行,对每行数据做操作,每列数据取一个值,就组成了一行数据。drop(columns,axis=1),传入的是列名,所以会去掉对应列名上所有值。
代码示例:
生成DataFrame数据
axis=0,获取一列的和
axis=1,'two',删除列two数据
如果你是这样写的会报错,在这个axis中没有找到列two
总结:
我觉得最重要的是先记着axis=0是代表跨行的,axis=1是代表跨列的,然后求和,求平均值,删除等操作在这个基础上可以思考出来。