apply 方法中的轴(Pandas)

问题描述 投票:0回答:2

这是一个简单的问题,但我觉得我需要确定一下。

df.apply(func, axis=1)

显然,这段代码应该针对给定的数据集按行执行该函数。然而,据我所知,按行操作是通过 axis = 0 完成的,而不是 axis = 1 完成的。

谁能告诉我 apply 方法是否以某种方式运行不同,而我只需要知道这是一个例外?

python pandas apply axis
2个回答
3
投票

axis = 0 表示函数沿列起作用,axis = 1 表示函数沿行起作用。例如

data = pd.DataFrame([[1,2],[3,4]])
data.sum(axis = 0)

结果是

0    4
1    6

这是沿列的总和


0
投票

另一种看待这一点的方法是

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
© www.soinside.com 2019 - 2024. All rights reserved.