我编写了一个脚本,它从pandas Dataframe (最多350行)中随机抽取15行的子集,并将这些子集输入一个“scorer”函数,该函数对某些列中包含的浮点值执行排序、切片和求和操作。这是可能的脚本需要这样做数百万次,这需要很长的时间来完成,我正在寻找一种方法,以加快它,如果我可以。
我可以想到的选项是将脚本更改为从sql数据库调用,或者使用numpy数组而不是 Dataframe 。然而,这些(或任何其他方法)是否会给我带来比Pandas更大的性能提升?
这些函数的伪代码为:
import pandas as pd
import itertools
df = pd.DataFrame() # main dataframe, consisting of up to 350 rows
highScore = 0
for foo in itertools.combinations(df, 15):
score = scorer(foo)
if score > highscore:
highScore = score
print(foo)
print(score)
def scorer(df):
# Sort df by column 'Score', slice to ten highest values (using head), and sum
localDf = df.sort_values('Score', ascending=False)
localDf = df.head(10)
return localDf['Score'].sum()
暂无答案!
目前还没有任何答案,快来回答吧!