2016-05-17 56 views
0

我有些dataframes定義,他們有數據(浮點),他們的名字是:迭代在數據幀的名字與大熊貓名單

df_names = ['df_correl_USDCOP','df_correl_USDCLP','df_correl_USDRUB'] 

我也已經定義了下面列出了能夠使用繪製循環:

figures = ['fig'+str(i+1) for i in range(len(df_names))] 
axes = ['ax'+str(i+1) for i in range(len(df_names))] 

for fig, ax, name in zip(figures,axes,df_names): 
    fig,ax = plt.subplots(figsize=(14,10)) 
    ax.plot(name[:],lw=4) 

當這樣做時,會出現一個錯誤,因爲在循環中數據框不會被識別,但只是作爲一個字符串。

ValueError: could not convert string to float: df_correl_USDCOP 

我在檢查這個答案How can I iterate through multiple dataframes to select a column in each in python?,但無法將其應用於此示例。

問題不在於繪圖本身,而是如何遍歷數據幀名稱列表並獲取「實際」數據框,而不是字符串的名稱。

回答

0

將實際的數據框,而不是字符串與他們的名字放入第二個列表。

如果代碼的其餘部分是OK(我不能沒有數據測試),如果你使用它應該工作而不是執行以下操作:

df_names = ['df_correl_USDCOP','df_correl_USDCLP','df_correl_USDRUB'] 
df_list = [df_correl_USDCOP,df_correl_USDCLP,df_correl_USDRUB] 

figures = ['fig'+str(i+1) for i in range(len(df_names))] 
axes = ['ax'+str(i+1) for i in range(len(df_names))] 

for fig, ax, name in zip(figures,axes,df_list): 
    fig,ax = plt.subplots(figsize=(14,10)) 
    ax.plot(name[:],lw=4)