我正在使用pandas将几个csv文件读入内存进行处理,并且在某些时候想要列出我已加载到内存中的所有数据帧。有一个简单的方法吗? (我在想像%ls,但仅限于我在内存中可用的数据框)
答案 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的副本仅供内部使用,而那些以'_'开头