连续排序 10000 条记录的更有效(最快)方式是什么

时间:2021-07-29 19:15:17

标签: python pandas dataframe sorting

我连续读取每秒更新 3 次的 price.csv,使用 df.nlargest 或 df.sort_values 按数量排序,哪种方法更快??

#Read stock price from price.csv, sort by volume, print Highest stock volume.
import pandas as pd
while 1==1:    
    try:
        df=pd.read_csv ("R:/price.csv").dropna()
        #df=df.nlargest(1,'volume')                                #first method
        #df.sort_values('volume',ascending=False,inplace=True)     #second method   
        print ("\t",df.iloc[0,0],df.iloc[0,1] )  
    except:
        pass
del df

示例输出:

 SNDL 79416563.0 
 SNDL 79552154.0 
 ITUB 20537823.0 
 PCG 24423451.0 
 EDU 104113726.0 
 TSM 5074870.0 
 EDU 105639190.0 
 ABEV 30110259.0 
 CEI 10292901.0 
 PCG 24739218.0 
 SWN 19374652.0 

1 个答案:

答案 0 :(得分:1)

好吧,我不确定。

但是,我喜欢的计算机科学学位告诉我,为了“找到最大值”进行排序不是要走的路。排序的计算复杂度充其量是 O(N),通常更接近 O(N*log(N))。而找到未排序列表的最大值(或最小值)总是 O(N)。

那么,这是什么意思?不要对文件进行排序以找到最大值,而是搜索它。这告诉我,从理论的角度来看,df.nlargest(1,'volume')(第一种方法)很可能是您想要使用的方法。

相关问题