给定一个 Pandas 数据框df,我们可以像这样对列求和
[x for x in df.sum()]
Run Code Online (Sandbox Code Playgroud)
并产生这样的总和。
sum([x for x in df.sum()])
Run Code Online (Sandbox Code Playgroud)
这可以仅使用数据帧操作来完成,而无需求助于 Python 的 sum() 吗?
使用np.sum:
np.sum(df.to_numpy())
Run Code Online (Sandbox Code Playgroud)
或者正如@jakub 指出的那样:
df.to_numpy().sum()
Run Code Online (Sandbox Code Playgroud)
时间:
使用...
df = pd.DataFrame(np.arange(10000).reshape(100,-1))
%timeit df.to_numpy().sum()
# 12.1 µs ± 357 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit np.sum(df.to_numpy())
# 14 µs ± 263 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit df.stack().sum()
# 469 µs ± 30.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%timeit df.sum().sum()
# 381 µs ± 21.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Run Code Online (Sandbox Code Playgroud)