0
任何人都可以幫助我演示如何將此循環轉換爲cython以提高性能。我得到你需要使用cdef創建靜態類型的性能,但還有什麼是必需的:Cythonise熊貓循環
如果我有一個數據幀df列'a'。
for i in range(0, len(df.a)-1):
if (i < len(df.a)-1):
y= i + 1
while ((np.abs(df.a[y]- df.a[i]) <= 0.015) & (y < len(df.a)-1)):
y = y + 1
if df[a][y] - df[a][i] >= 0.015:
df['dir_y'][i] = 1
#print(1)
else:
df['dir_y'][i] = -1
#print(-1)
我很確定'cythonise'不是一個詞,它只是看起來合適。
或許你可以先看看'.iloc'和'.ix',優化現有的代碼,配置文件,然後再決定是否需要移動到*用Cython *? – Anzel
另請參閱關於使用cython進行擴展的pandas文檔:http://pandas.pydata.org/pandas-docs/stable/enhancingperf.html#cython-writing-c-extensions-for-pandas – joris
Anzel能爲您闡述原因。 iloc和.ix會更快。我以爲.ix比我寫的要慢 – azuric