下面是我生成一个数据框架的代码:
import pandas as pd
import numpy as np
dff = pd.DataFrame(np.random.randn(1,2),columns=list('AB'))
然后我得到了数据框架:
+------------+---------+--------+
| | A | B |
+------------+---------+---------
| 0 | 0.626386| 1.52325|
+------------+---------+--------+
当我输入命令时:
dff.mean(axis=1)
我得到:
0 1.074821
dtype: float64
根据pandas的参考,axis=1代表列,我希望命令的结果是
A 0.626386
B 1.523255
dtype: float64
我的问题是:轴在熊猫中是什么意思?
我以前也很困惑,但我记得是这样的。
它指定将更改的数据帧的维度,或者将在其上执行操作。
让我们通过一个例子来理解这一点。
我们有一个数据框架df,它的形状是(5,10),这意味着它有5行10列。
现在,当我们使用df。mean(axis=1)时,它意味着维数1将被改变,这意味着它将有相同的行数,但不同的列数。因此得到的结果将是(5,1)的形状。
类似地,如果我们使用df.mean(axis=0),这意味着维度0将被改变,这意味着行数将被改变,但列数将保持不变,因此结果将是形状(1,10)。
试着把这个和问题中提供的例子联系起来。
我将明确避免使用“行-wise”或“沿列”,因为人们可能会以完全错误的方式解释它们。
类比。直观地,你会期望pandas. datafframe .drop(axis='column')从N个列中删除一个列,并给出(N - 1)个列。所以你现在可以不关注rows(并从你的英语字典中删除row这个单词)。反之亦然,drop(axis='row')作用于行。
以同样的方式,sum(axis='column')在多个列上工作,并给出1列。类似地,sum(axis='row')的结果为1行。这与其最简单的定义形式是一致的,即将一组数字简化为一个数字。
一般来说,使用axis=column,您可以看到列,处理列,并获得列。忘记行。
使用axis=row,改变视角并在行上工作。
0和1只是“行”和“列”的别名。这是矩阵下标的惯例。