測試集大小:
test.shape
(898, 11)
對某列的字符串做統計長度
1、for遍歷法:
start = time.time()
for i in test.index.values:
test.loc[i,'contentLen1'] = len(test.loc[i,'content'])
time.time() - start
47.16238021850586
2、使用pandas的內置方法.str
%time test['contentLen2'] = test['content'].str.len()
Wall time: 61 ms
結論
上面例子可以得出,使用pandas時千萬不要盲目的使用for遍歷,要學會使用pandas提供的內置方法。
for和.str方法之間的性能差距過大,不在一個數量級。使用for會造成頻繁的賦值操作,造成不必要內存消耗和計算時長。
以上測試用例才898行,for的賦值耗時高達47秒,生產上的都是幾百萬行的數據,使用for那不就直接涼涼了?
且行且珍惜啊!
---------------------
作者:ChenVast
來源:CSDN
原文:https://blog.csdn.net/chenvast/article/details/82758281
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!