首页 > 解决方案 > 根据字符串在每个循环中调用不同的变量

问题描述

我有一个 for 循环,我想在每个循环中调用不同的 pd.Dataframes 并将某个列('feedin')添加到另一个数据帧。变量名由'feedin_' + x 组成。让我们说a,b和c。因此,在第一个循环中,我想调用变量 feedin_a 并将列“feedin”添加到新数据帧中。在接下来的 feedin_b 等等。

我传递了一个 ['a', 'b', 'c'] 列表并尝试组合 feedin_+ a。但由于列表由字符串参数组成,它不会调用变量

feedin_a = pd.Dataframe
feedin_b = pd.Dataframe
feedin_c = pd.Dataframe

list = ['a', 'b', 'c']

for name in list:

df.new['feedin_'+name] = 'feedin_'+name['feedin']

这不起作用,因为变量被称为字符串。我希望你能解决我的问题。

标签: pythonpandas

解决方案


这就是当你真的需要像列表这样的数据结构时feedin_a,使用 variables 不是一个好主意的原因之一。feedin_b

如果你不能改变这个,你可以在locals()(或globals()字典中查找名称:

df.new['feedin_'+name] = locals()['feedin_'+name]['feedin']

推荐阅读