如何加快我的python代码,熊猫库

时间:2018-07-06 20:04:06

标签: python

我是Python的新手,我编写了python代码来处理excel文件。这是我的代码

files=os.listdir("XXX")
os.chdir("XXX")

def getDF(xl, sh):
    print(sh)
    test= xl.parse(sh)
    test2=test.iloc[:, (list(range(8))+ list(range(8,len(test.columns),5))) + list(range(9,len(test.columns),5))]
    num=list((range(1440)))
    aCN = [str(x)+'w' for x in num]
    bCN = [str(x)+'r' for x in num]
    test2.columns=["a", "b", "c", "d", "e", "f", "g" , 'h']+aCN + bCN
    return(test2)

def prepareOneFile(path):
    fn = path
    xl = pd.ExcelFile(fn)
    newDF=[getDF(xl, x ) for x in xl.sheet_names]
    df = pd.concat(newDF)
    print(fn)
    return(df)


app_list= [prepareOneFile(x) for x in files]

代码运行非常慢,我可以加快速度吗?非常感谢11

1 个答案:

答案 0 :(得分:0)

您的代码不容易阅读,但我认为您在效率方面做不到很多。如果将以下行更改为fn = path,则xl = pd.ExcelFile(path)是不必要的,这样可以节省额外的步骤。您可以删除print,它们占用的时间非常少。

除此之外,您还可以查看using a VBA script to convert your Excel to CSV filespd.read_csv比从excel阅读更快。我想这是您最好的选择。这就是我能给你的。也许有人会变得更聪明,为您提供更好的答案。