鉴于Pandas数据框df
,我们可以像这样对列进行求和
[x for x in df.sum()]
并产生这样的总和。
sum([x for x in df.sum()])
是否可以仅使用数据帧操作来完成此操作,而不必求助于Python的sum()?
答案 0 :(得分:9)
我们可以做stack
df.stack().sum()
答案 1 :(得分:5)
使用np.sum
:
np.sum(df.to_numpy())
或@jakub指出:
df.to_numpy().sum()
时间:
使用...
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)