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