Python 与熊猫不同的集团和集体经营有什么区别
我想在pandas中使用udaf,因为没有nunique函数,但我发现它花费了太多的时间。因此,我在现有函数上测试了不同的聚合方法,发现不同方法之间存在很大差异,如下所示“Python 与熊猫不同的集团和集体经营有什么区别,python,pandas,aggregate,Python,Pandas,Aggregate,我想在pandas中使用udaf,因为没有nunique函数,但我发现它花费了太多的时间。因此,我在现有函数上测试了不同的聚合方法,发现不同方法之间存在很大差异,如下所示“ sum是cython优化的聚合函数之一。通常,np.sum、sum、“sum”和“sum()调用该函数,但显然pd.Series.sum不是其中之一。通常,安全的方法是使用它们的别名('sum','mean','std','size'等) import numpy as np import pandas as pd rec
sum
是cython优化的聚合函数之一。通常,np.sum
、sum
、“sum”和“sum()
调用该函数,但显然pd.Series.sum不是其中之一。通常,安全的方法是使用它们的别名('sum'
,'mean'
,'std'
,'size'
等)
import numpy as np
import pandas as pd
recordNum = 10
n = 2
varNum = 1000
keys = ['ID%04d' %i for i in range(int(recordNum/n))] * n
varlst1 = ['x%04d' %i for i in range(varNum)]
dsDict1 = {k:np.random.choice(range(1000), recordNum) for k in varlst1}
dsDict1['ID'] = keys
df1 = pd.DataFrame(dsDict1)
dfg = df1.groupby(['ID'])
# 1.47ms
%timeit dfg.sum()
# 1.48ms
%timeit dfg.aggregate(sum)
# 1.5s
%timeit dfg.aggregate(pd.Series.sum)
# 361ms
%timeit dfg.aggregate({}.fromkeys(varlst1, sum))