不使用并行化(Swifter、Parallel)是否可以不通过索引立即进行即时计算?
Is it possible without using parallelization (Swifter, Parallel) to make an instant calculation immediately without passing through the index?
是否可以在不使用并行化(Swifter、Parallel)的情况下立即进行即时计算而不通过索引,例如通过对所有数据集使用“apply”函数?
%%time
import random
df = pd.DataFrame({'A':random.sample(range(200), 200)})
for j in range(200):
for i in df.index:
df.loc[i,'A_last_{}'.format(j)] = df.loc[(df.index < i) & (df.index >= i - j),'A'].mean()
%%time
import random
df = pd.DataFrame({'A':random.sample(range(200), 200)})
首先计算总和。
df[1] = df['A'].shift()
for j in range(2, 200):
df[j] = df[j-1].fillna(0) + df['A'].shift(j)
然后进行均值除法并处理格式
df = df.set_index('A')
df.divide(df.columns, axis=1)\
.fillna(method='ffill', axis=1)\
.rename(lambda x: f'A_last_{x}', axis=1)\
.reset_index()
是否可以在不使用并行化(Swifter、Parallel)的情况下立即进行即时计算而不通过索引,例如通过对所有数据集使用“apply”函数?
%%time
import random
df = pd.DataFrame({'A':random.sample(range(200), 200)})
for j in range(200):
for i in df.index:
df.loc[i,'A_last_{}'.format(j)] = df.loc[(df.index < i) & (df.index >= i - j),'A'].mean()
%%time
import random
df = pd.DataFrame({'A':random.sample(range(200), 200)})
首先计算总和。
df[1] = df['A'].shift()
for j in range(2, 200):
df[j] = df[j-1].fillna(0) + df['A'].shift(j)
然后进行均值除法并处理格式
df = df.set_index('A')
df.divide(df.columns, axis=1)\
.fillna(method='ffill', axis=1)\
.rename(lambda x: f'A_last_{x}', axis=1)\
.reset_index()