是否可以将%who数据帧转换为IPython笔记本中的列表?
我知道magic命令是否可以将%who数据帧转换为IPython笔记本中的列表?,python,ipython-notebook,Python,Ipython Notebook,我知道magic命令%who DataFrame可以打印工作区中的数据帧列表。我想知道是否有可能将输出制作成一个列表,以便稍后引用 比如说, import pandas as pd df_1 = pd.DataFrame() df_2 = pd.DataFrame() %who DataFrame 返回: df_1 df_2 我尝试了诸如list(%who DataFrame)和output=%who DataFrame之类的方法,但都没有成功。who只打印结果,它不会返回您可以访问
%who DataFrame
可以打印工作区中的数据帧列表。我想知道是否有可能将输出制作成一个列表,以便稍后引用
比如说,
import pandas as pd
df_1 = pd.DataFrame()
df_2 = pd.DataFrame()
%who DataFrame
返回:
df_1 df_2
我尝试了诸如
list(%who DataFrame)
和output=%who DataFrame
之类的方法,但都没有成功。who
只打印结果,它不会返回您可以访问的任何内容(您需要拦截流)。但是你可以代替我们,这就是who
所说的:
In [23]: df0 = pd.DataFrame()
In [24]: df1 = pd.DataFrame()
In [25]: w = %who DataFrame
df0 df1
In [26]: w
In [27]: w = %who_ls DataFrame
In [28]: w
Out[28]: ['df0', 'df1']
In [29]: type(w)
Out[29]: list
你为什么想要这个?嗨@DSM,我有一个后续问题。我认为这样做可以让我在w:print df.descripe()中一次引用数据帧并描述df的所有数据帧。但df实际上被视为unicode
unicode对象没有属性“descripe”
是否有解决方法?非常感谢@莉莉:who_ls
返回数据帧的名称,而不是数据帧本身。如果您想将名称转换为对象,您可以执行类似于dfs=[eval(name)for name in w]
或[locals()[name]for name in w]
之类的操作,但通常当您出于调试目的以外的目的执行此操作时,这是一个坏主意。我明白了。非常感谢你的提醒。真的很有帮助!