照例答案写在开头
为什么sum要换成join?
因为join 速度比sum快好几倍!!如果你是对自己代码运行效率有追求的话,建议换换~
下面实际操作一下,看看结果怎么样
import pandas as pd from time import time df = pd.DataFrame(zip(range(1000000),
['test']*1000000),columns=['a','b']) df['c'] = df.apply(lambda x: str(x.a)[-1],
axis=1) start = time() for i in range(10): data = df[['b','c']].groupby('c',
as_index=False).sum() print('sum Time: {:5.2f}s'.format(time() - start)) def
is_join(data_df): res_str = "".join(map(str, list(data_df))) return res_str
start= time() for i in range(10): data = df[['b', 'c']].groupby('c', as_index=
False).agg(is_join)
建了一个100w行的df进行数据的测试
测试结果如下
可以看到用join函数对字符串进行相加要比直接sum快的多,将近20倍
在数据量大的时候效果更明显哦!
我是一只前进的蚂蚁,希望能一起前行。
如果对您有一点帮助,一个赞就够了,感谢!
注:如果本篇博客有任何错误和建议,欢迎各位指出,不胜感激!!!
技术
今日推荐