首页 > 解决方案 > 在 python 循环中引用文件名

问题描述

我有5个数据框如下。我需要使用 for 循环打印每个文件的记录数。我怎样才能做到这一点?

f1=pd.DataFrame(np.random.random(10))
f2=pd.DataFrame(np.random.random(10))
f3=pd.DataFrame(np.random.random(10))
f4=pd.DataFrame(np.random.random(10))
f5=pd.DataFrame(np.random.random(10))

我尝试了下面的代码,

for i in range(1,6):
    j='f'+str(i)
    print(j.shape)   

并得到错误 AttributeError: 'str' object has no attribute 'shape',因为循环创建了字符串 f1、f2、f3、f4、f5。有没有其他方法可以引用文件名并在循环中对它们进行操作?另外 - 这是一个好习惯吗?

对于循环中的所有数据帧,我想做的其他操作如下所示,而不仅仅是 for 循环

df1=f1.loc[(f1.number > 0.5) & (f1.number<1)]
df2=f2.loc[(f2.number > 0.5) & (f2.number<1)]

标签: python-3.xpandas

解决方案


只需创建一个包含 5 个元素的列表并循环遍历它。

f = [pd.DataFrame(np.random.random(10)).
     pd.DataFrame(np.random.random(10)),
     pd.DataFrame(np.random.random(10)),
     pd.DataFrame(np.random.random(10)),
     pd.DataFrame(np.random.random(10)),
]

for j in f:
    print(j.shape)

推荐阅读