[英]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.