如何迭代数据框名称列表以获取列表中每个数据框第一行的第一个值
How to iterate of a list of dataframe's name to get the 1st value of 1st row of every dataframe in the list
假设我有 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]
这不起作用,因为名称是一个字符串。我的问题是:如何遍历该数据框的名称列表以使该代码有效?
输出应该是:
f=['lab','jess','china']
不要使用列表中的名称,而是使用变量(即数据帧)本身:
dataframes = [df,da,db]
f = [d.iat[0,0] for d in dataframes]
输出:['lab', 'jess', 'china']
理论上可以使用名称,但这是一种不好的做法,会使代码不明确并且容易出现 bugs/errors/unwanted 行为(所以不要请做!):
dataframe_list_name = ['df','da','db']
g = globals()
f = [g[name].iat[0,0] for name in dataframe_list_name]
假设我有 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]
这不起作用,因为名称是一个字符串。我的问题是:如何遍历该数据框的名称列表以使该代码有效?
输出应该是:
f=['lab','jess','china']
不要使用列表中的名称,而是使用变量(即数据帧)本身:
dataframes = [df,da,db]
f = [d.iat[0,0] for d in dataframes]
输出:['lab', 'jess', 'china']
理论上可以使用名称,但这是一种不好的做法,会使代码不明确并且容易出现 bugs/errors/unwanted 行为(所以不要请做!):
dataframe_list_name = ['df','da','db']
g = globals()
f = [g[name].iat[0,0] for name in dataframe_list_name]