2017-07-15 59 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))