例如,我在工作空间中创建了5pd.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
,而startswith trade_
:
type(trade_fg)
Out[508]: pandas.core.frame.DataFrame
那么,我怎样才能返回它们的列表呢?不仅仅返回列表中变量的名称。你知道吗
到目前为止,我可以在如下列表中获得变量startswtihtrade_
的名称:
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']
但这不是我想要的。 顺便说一下,我想在一个列表中返回这些数据帧变量的原因是为每个变量添加一列。你知道吗
因为您只使用自己创建的字符串,所以可以安全地使用
eval
来获取它们的值:制作名值词典
或者可以直接使用
locals()
,而不使用dir()
,因为dir()
已经是局部变量的字典:您可以使用
eval()
按名称接收变量的引用,并使用isinstance()
检查它是否是DataFrame
,如下所示:正如所建议的那样,您可能需要创建一个字典—除非您不需要该名称信息。在这种情况下,一份清单就足够了:
相关问题 更多 >
编程相关推荐