代码之家  ›  专栏  ›  技术社区  ›  Abhishek Kulkarni

向量化熊猫数据帧列表上的函数

  •  2
  • Abhishek Kulkarni  · 技术社区  · 6 年前

    我读取一个Excel文件,并将每个选项卡保存为熊猫数据帧。

    import pandas as pd
    xla = pd.ExcelFile("file_name.xlsx")
    kl=xla.sheet_names
    hf_list=[]
    for i in range(len(kl)):   
        hf_list.append(pd.read_excel(xla, i,index_col=0))
    

    我打算计算列表中每个数据帧的等级,因此编写了以下代码。

    def score_card(raw_list):    
        score_list=[]    
        for i in range(len(raw_list)):
            score_list.append(raw_list[i].rank(axis=1))        
        return score_list
    
    score_list=score_card(hf_list)
    

    我想知道是否有一种方法可以使代码向量化,并避免Score_Card函数中的for循环(以及读取Excel文件)。 提前谢谢你的时间。

    1 回复  |  直到 6 年前
        1
  •  2
  •   jezrael    6 年前

    sheet_name = None read_excel

    dfs = pd.read_excel("file_name.xlsx", sheet_name = None, index_col=0) 
    

    score_list = [v.rank(axis=1) for k, v in dfs.items()]
    

    concat

    df = pd.concat(dfs.values())