2017-07-15 58 views
1

計算的幾個文件長度熊貓我有五個數據幀(df1, df2, df3, df4, df5),並且我會用下面的代碼來計算它們的長度:使用循環

df1 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_1.xlsx") 
df2 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_2.xlsx") 
df3 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_3.xlsx") 
df4 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_4.xlsx") 
df5 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_5.xlsx") 

for i in [1,2,3,4,5]: 
    print(len(dfi.index)) 

但它引發以下錯誤:

"name 'dfi' is not defined" 

我也試過這樣:

for i in [1,2,3,4,5]: 
    print(len(df[i].index)) 

但沒有奏效。

此代碼:

print(len(df1.index)) 

但我必須改變,每次的文件的名稱。

什麼是問題,我該如何解決它?

+0

您可以發佈不只是你的循環嗎?目前還不清楚你在做什麼。試試'df [i]'。 –

+0

你可以給這個問題添加一個[mcve]嗎?很難知道你想要做什麼。如果數據框位於列表中,您可以在'name_of_your_df_list:'中使用'for dfi'。 – MSeifert

+1

這不起作用,因爲您沒有名爲'dfi'的變量。您可能想要將數據框放入列表並遍歷它們。 – Akavall

回答

3

Python中沒有動態變量名 - 因此dfi引用了一個明確稱爲dfi的變量。它不會因爲i1(或其他)而更改爲df1

你的情況,你可以簡單地在dataframes序列迭代:

df1 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_1.xlsx") 
df2 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_2.xlsx") 
df3 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_3.xlsx") 
df4 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_4.xlsx") 
df5 = pd.read_excel("/Users/us/Desktop/cymbalta_rated_5.xlsx") 

for dfi in (df1, df2, df3, df4, df5): # explicitly defines the variable "dfi"! 
    print(len(dfi.index))