Pandas Get a List Of All Data Frames loaded into memory

前端 未结 3 514
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-09 19:01

I am using pandas to read several csv files into memory for processing and at some point would like to list all the data frames I have loaded into memory. Is there a simple

相关标签:
3条回答
  • 2020-12-09 19:27

    You could list all dataframes with the following:

    import pandas as pd
    
    # create dummy dataframes
    df1 = pd.DataFrame({'Col1' : list(range(100))})
    df2 = pd.DataFrame({'Col1' : list(range(100))})
    
    # check whether all variables in scope are pandas dataframe. 
    # Dir() will return a list of string representations of the variables. 
    # Simply evaluate and test whether they are pandas dataframes
    alldfs = [var for var in dir() if isinstance(eval(var), pd.core.frame.DataFrame)]
    
    print(alldfs) # df1, df2
    
    0 讨论(0)
  • 2020-12-09 19:33

    I personally think this approach is much better (if in ipython).

    import pandas as pd
    %whos DataFrame
    
    0 讨论(0)
  • 2020-12-09 19:43

    building on previous answers ... this returns a list

    import pandas as pd 
    %who_ls DataFrame 
    

    however, if you try to run a script it doesn't work

    thus

    import pandas as pd
    sheets=[]    
    for var in dir():
        if isinstance(locals()[var], pd.core.frame.DataFrame)  and var[0]!='_':
            sheets.append(var)
    

    since some DataFrames will have a copy for internal use only and those start with '_'

    0 讨论(0)
提交回复
热议问题