如何迭代数据帧名称列表以获取列表中每个数据帧的第一行的第一个值



假设我有3个数据帧:

df=pd.DataFrame({'area':['lab','class_room','pool','gardem'],'%_chance':[0.33,0.27,.30,.10]})
da=pd.DataFrame({'city':['jess','nobytown','paris','miami'],'%_chance':[0.5,0.30,.15,.05]})
db=pd.DataFrame({'country':['china','japan','france','eua'],'%_chance':[0.43,0.27,.20,.10]})

和一个包含数据框架名称的列表:

dataframe_list_name = ['df','da','db']

我想获得每个数据帧的第一列的第一行的值(在这种情况下只有3个,但我可以有更多),并将它们附加到一个列表。

我正在尝试这个:

f=[]
for name in dataframe_names:
    x=name.iloc[0,0]

这个不能工作,因为name是一个字符串。我的问题是:我如何遍历该数据框架的名称列表以使该代码工作?

输出应该是:

f =["实验室","杰斯","中国")

不要使用列表中的名称,而是使用变量(即数据框架)本身:

dataframes = [df,da,db]
f = [d.iat[0,0] for d in dataframes]

输出:['lab', 'jess', 'china']

理论上可以使用名称,但这是一个不好的做法,并且使代码显式不佳并且容易出现bug/错误/不必要的行为(所以请不要这样做!):

dataframe_list_name = ['df','da','db']
g = globals()
f = [g[name].iat[0,0] for name in dataframe_list_name]

相关内容

  • 没有找到相关文章

最新更新