python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码:
>>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \
columns=["col1", "col2", "col3", "col4"])
>>>df
col1 col2 col3 col4
0 1 1 1 1
1 2 2 2 2
2 3 3 3 3
如果我们调用df.mean(axis=1),我们将得到按行计算的均值
>>> df.mean(axis=1)
0 1
1 2
2 3
然而,如果我们调用 df.drop((name, axis=1),我们实际上删掉了一列,而不是一行:
>>> df.drop("col4", axis=1)
col1 col2 col3
0 1 1 1
1 2 2 2
2 3 3 3
这里其实很简单,axis=0其实是跨行,而axis=1是跨列
我们这里来看看df.mean(axis=1),因为axis=1所以按照上面的说法,就是跨列进行计算,这样跨了3列计算得到了平均值(相当于水平方向上的操作)
再仔细来看看 df.drop((name, axis=1),也是跨列进行计算,这里我们利用上面所得到的想法,是水平方向上的操作,这里规定了name,也就是对这一列进行水平方向上的操作(这里是drop操作),于是就得到了上述的结果