python—优化 Dataframe 上的选择/排序/切片/求和操作

5gfr0r5j  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(221)

我编写了一个脚本,它从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()

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题