gpt4 book ai didi

python - 在 ipython 中,如何获取特定类型和模式的所有局部变量的列表?

转载 作者:行者123 更新时间:2023-12-01 02:17:37 25 4
gpt4 key购买 nike

比如我在工作空间创建了5个pd.DataFrame,分别是:

trade_i = pd.DataFrame(np.random.rand(5, 2))
trade_xt = pd.DataFrame(np.random.rand(5, 2))
trade_mmt = pd.DataFrame(np.random.rand(5, 2))
trade_pg = pd.DataFrame(np.random.rand(5, 2))
trade_fg = pd.DataFrame(np.random.rand(5, 2))

如您所见,类型均为pandas.core.frame.DataFrame,并以trade_开头:

type(trade_fg)
Out[508]: pandas.core.frame.DataFrame

那么,我怎样才能返回它们的列表呢?不仅仅是返回列表中变量的名称。

到目前为止,我可以在如下列表中获取变量startswtih trade_ 的名称:

df_list = [x for x in dir() if x.startswith('trade_')]
df_list
Out[514]:
['trade_i',
'trade_xt',
'trade_mmt',
'trade_pg',
'trade_fg']

但这不是我想要的。顺便说一句,我想在列表中返回这些 dataFrame 变量的原因是为每个变量附加一列。

最佳答案

您可以使用eval()通过名称接收变量的引用,并使用isinstance()检查它是否是DataFrame像这样:

[eval(v) for v in dir() 
if isinstance(eval(v), pd.DataFrame) and v.startswith('trade_')]

按照建议,您可能想要创建一个字典 - 除非您不需要该名称信息。在这种情况下,一个列表就足够了:

import pandas as pd

df = pd.DataFrame([4,5,6])
trade_df = pd.DataFrame([1,2,3])

data_frames = dict([(v, eval(v)) for v in dir()
if isinstance(eval(v), pd.DataFrame) and v.startswith('trade_')])

关于python - 在 ipython 中,如何获取特定类型和模式的所有局部变量的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48250877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com