这是一个简单的问题,但我觉得我需要确定一下。
df.apply(func, axis=1)
显然,这段代码应该针对给定的数据集按行执行该函数。然而,据我所知,按行操作是通过 axis = 0 完成的,而不是 axis = 1 完成的。
谁能告诉我 apply 方法是否以某种方式运行不同,而我只需要知道这是一个例外?
axis = 0 表示函数沿列起作用,axis = 1 表示函数沿行起作用。例如
data = pd.DataFrame([[1,2],[3,4]])
data.sum(axis = 0)
结果是
0 4
1 6
这是沿列的总和
另一种看待这一点的方法是
df.sum(axis=1)
和 df.apply(sum,axis=1)
返回具有相同尺寸的对象。
例如
data = pd.DataFrame([[1,2,4],[3,5,6]])
# summing along columns
# resulting object has dimension nrows x 1
data.sum(axis = 1)
0 4
1 7
2 10
dtype: int64
# applying the sum along columns (on each row)
# resulting object also has dimension nrows x 1
data.apply(sum, axis = 1)
0 4
1 7
2 10
dtype: int64