今天写程序的时候发现两个axis其实是有区别的,程序如下
DataFrame
data.drop('two', axis =1)
Out[186]:
one three four
o 0 2 3
c 4 6 7
u 8 10 11
n 12 14 15
numpy
arr
Out[188]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
arr.sum(1)
Out[189]: array([ 6, 15, 24])
乱了吧,原因是没有理解axis
简单的来说就是axis=0代表跨行(down) = 列 = 行标签们,而axis=1代表跨列(across) = 行 = 列标签们记住这个就ok了
换句话说:
- 使用0值表示沿着每一列或行标签\索引值向下执行方法
- 使用1值表示沿着每一行或者列标签模向执行对应的方法
下图代表在DataFrame当中axis为0和1时分别代表的含义:
另外,记住,Pandas保持了Numpy对关键字axis的用法,用法在Numpy库的词汇表当中有过解释:
轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
回到代码sum(1)行方向,也就是行和,就是跨列
drop('two', axis = 1),列标签们里面干掉标签叫'two'的
就这么回事
参考文章:http://stackoverflow.com/questions/25773245/ambiguity-in-pandas-dataframe-numpy-array-axis-definition
https://docs.scipy.org/doc/numpy/glossary.html
网友评论