Pandas获取加载到内存中的所有数据框的列表

时间:2016-12-13 04:19:40

标签: python pandas

我正在使用pandas将几个csv文件读入内存进行处理,并且在某些时候想要列出我已加载到内存中的所有数据帧。有一个简单的方法吗? (我在想像%ls,但仅限于我在内存中可用的数据框)

3 个答案:

答案 0 :(得分:11)

您可以使用以下内容列出所有数据框:

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

答案 1 :(得分:4)

我个人认为this方法要好得多(如果在ipython中)。

import pandas as pd
%whos DataFrame

答案 2 :(得分:0)

基于先前的答案... 这将返回一个列表

import pandas as pd 
%who_ls DataFrame 

但是,如果您尝试运行脚本,则该脚本不起作用

因此

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

因为某些DataFrames的副本仅供内部使用,而那些以'_'开头