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

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

我编写了一个脚本,它从pandas Dataframe (最多350行)中随机抽取15行的子集,并将这些子集输入一个“scorer”函数,该函数对某些列中包含的浮点值执行排序、切片和求和操作。这是可能的脚本需要这样做数百万次,这需要很长的时间来完成,我正在寻找一种方法,以加快它,如果我可以。
我可以想到的选项是将脚本更改为从sql数据库调用,或者使用numpy数组而不是 Dataframe 。然而,这些(或任何其他方法)是否会给我带来比Pandas更大的性能提升?
这些函数的伪代码为:

  1. import pandas as pd
  2. import itertools
  3. df = pd.DataFrame() # main dataframe, consisting of up to 350 rows
  4. highScore = 0
  5. for foo in itertools.combinations(df, 15):
  6. score = scorer(foo)
  7. if score > highscore:
  8. highScore = score
  9. print(foo)
  10. print(score)
  11. def scorer(df):
  12. # Sort df by column 'Score', slice to ten highest values (using head), and sum
  13. localDf = df.sort_values('Score', ascending=False)
  14. localDf = df.head(10)
  15. return localDf['Score'].sum()

暂无答案!

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

相关问题