是否有任何方法在变量名中使用for循环迭代器?



我正在寻找一种在for循环中动态使用多个数据帧的方法。什么好主意吗?

我生成了24个像这样的数据帧("hour"0-23):

N = 24
for i in range(int(N)):
exec("df_hour{} = df_m_a_meaned[df_m_a_meaned['hour']=={}]".format(i, i))`

现在我想在for循环中使用它们来生成一个plot,我尝试了这个,但它显然不起作用:

fig = go.Figure(data=[go.Box(
x="df_hour{}['hour']".format(i),
y="df_hour{}['priceNum']".format(i), 
) for i in range(int(N))])

不要永远在你的正常代码中使用exec来生成变量,这只会让事情变得更加困难。,如果您想生成动态命名的变量,请使用字典。

my_dataframes = {}
for i in range(int(N)):
my_dataframes[i] = df_m_a_meaned[df_m_a_meaned['hour']==i]
fig = go.Figure(data=[go.Box(
x=my_dataframes[i]['hour'],
y=my_dataframes[i]['priceNum'], 
) for i in range(int(N))])

最新更新