我line_profile我的函数,发现瓶颈在线下,它将数据帧df
的列值除以100:
df.iloc[:,2:6] = df.iloc[:,2:6]/100.0
要加快速度吗?
答案 0 :(得分:1)
我的时间:
np.random.seed(100)
N = 10000000
df = pd.DataFrame(np.random.randint(1000, size=(N,7)), columns=list('ABCDEFG'))
print (df)
In [79]: %timeit df.iloc[:, 2:6].div(100)
1 loop, best of 3: 221 ms per loop
In [80]: %timeit df.iloc[:, 2:6] / 100
1 loop, best of 3: 219 ms per loop
In [81]: %timeit df.iloc[:, 2:6] / 100.0
1 loop, best of 3: 205 ms per loop
In [82]: %timeit df.iloc[:, 2:6] * 0.01
1 loop, best of 3: 180 ms per loop