Bil*_*ill 21 python numpy sum dataframe pandas
我想出了这两种方法.还有更好的吗?
>>> import pandas as pd
>>> df = pd.DataFrame({'A': [5, 6, 7], 'B': [7, 8, 9]})
>>> print df.sum().sum()
42
>>> print df.values.sum()
42
Run Code Online (Sandbox Code Playgroud)
只是想确保我没有遗漏更明显的东西.
piR*_*red 33
df.to_numpy().sum()
Run Code Online (Sandbox Code Playgroud)
是底层的numpy数组
df.values
Run Code Online (Sandbox Code Playgroud)
是numpy sum方法并且更快
添加一些数字来支持这一点:
import numpy as np, pandas as pd
import timeit
df = pd.DataFrame(np.arange(int(1e6)).reshape(500000, 2), columns=list("ab"))
def pandas_test():
return df['a'].sum()
def numpy_test():
return df['a'].to_numpy().sum()
timeit.timeit(numpy_test, number=1000) # 0.5032469799989485
timeit.timeit(pandas_test, number=1000) # 0.6035906639990571
Run Code Online (Sandbox Code Playgroud)
因此,仅针对级数求和,我们的机器就获得了 20% 的性能!
| 归档时间: |
|
| 查看次数: |
22286 次 |
| 最近记录: |