我正在寻找一种在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))])