- 我尝试比较Pandas和传统循环的性能。我意识到,在输入和输出相同的情况下,与传统循环相比,Pandas 执行的计算速度非常快。
我的代码:
#df_1h has been imported before
import time
n = 14
pd.options.display.max_columns = 8
display("df_1h's Shape {} rows x {} columns".format(df_1h.shape[0], df_1h.shape[1]))
close = df_1h['close']
start = time.time()
df_1h['sma_14_pandas'] = close.rolling(14).mean()
end = time.time()
display('pandas: {}'.format(end - start))
start = time.time()
df_1h['sma_14_loop'] = np.nan
for i in range(n-1, df_1h.shape[0]):
df_1h['sma_14_loop'][i] = close[i-n+1:i+1].mean()
end = time.time()
display('loop: {}'.format(end - start))
display(df_1h.tail())
Run Code Online (Sandbox Code Playgroud)
输出:
"df_1h's Shape 16598 rows x 15 columns" …
Run Code Online (Sandbox Code Playgroud)