[英]how to improve the calculation speed str to float
df['distance'].iloc[0]
output:'0.02790952'
type(df['distance'].iloc[0])
output:str
df.shape
(118884, 40)
我尝试将字符串解析为浮点数
for i in tqdm(range(len(df['distance']))):
df['distance'].iloc[i] = float(df['distance'].iloc[i])
这是几种方法之间的快速比较。 我使用了单列 DataFrame,有 100 万行。
.apply(np.float)
%%timeit
df[0].apply(np.float)
476 ms ± 6.65 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
.astype(float)
%%timeit
df[0].astype(float)
336 ms ± 2.66 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
pd.to_numeric
%%timeit
pd.to_numeric(df[0])
244 ms ± 2.28 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
pd.Series
和dtype
参数%%timeit
pd.Series(df[0], dtype=np.float64)
333 ms ± 2.88 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
获胜者是pd.to_numeric
,对于任何阅读此内容的人,如果您想到更快的方法,请发表评论!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.