[英]For Loop Not Working With pandas.read_csv
我正在使用 pandas 读取一些 csv 文件并遇到错误。
我有我想要阅读的文件列表:
files = ['file1.csv', 'file2.csv', 'file3.csv']
当我这样做时:
import pandas as pd
pd.read_csv('file1.csv').head()
pd.read_csv('file2.csv').head()
pd.read_csv('file3.csv').head()
一切正常。 然而,这显然不是我想要做的。 我在想这会起作用:
import pandas as pd
for file in files:
pd.read_csv(file).head()
但是当我运行这段代码时,我什么也得不到。
我相信这不是我的文件列表或类似内容的错误,因为当我这样做时: import pandas as pd for i in range(2): pd.read_csv('file1.csv').head( )
我什么也没得到,而不是预期的前 5 行 file1.csv 两次。
为什么会这样?
注意:我使用的是 Jupyter 笔记本,所以我不必打印头部或类似的东西,当我执行pd.read_csv('file1.csv').head()
时它会自动出现
我认为你想要的是这样的:
res = []
for file in files:
df = pd.read_csv(file)
# print(df.head()) if you insist.
res.append(df)
现在你可以对 res 中的数据框列表做任何你喜欢的事情。 让我们将它们连接起来:
df = pd.concat(res)
或者,也许你需要看到这一切都有效的是:
import pandas as pd
for file in files:
print(pd.read_csv(file).head())
试试下面的代码,我强烈建议你输入文件的整个文件路径,而不是只提到文件名
import pandas as pd
files = ['file1.csv', 'file2.csv', 'file3.csv']
for file in files:
temp = pd.read_csv(file)
print(temp.head())
我相信在您的代码中一切正常。 在 Jupyter notebook 中,它并不总是自动打印结果。
如果要检查 Jupyter notebook 如何打印结果,请检查以下代码:
x = [1,2]
x
这将显示结果 [1,2]
len(x)
这将显示 2
for i in range(3):
len(x)
另一方面,这不会显示任何内容。
请考虑将结果保存在 for 循环中,或者每次在 for 循环中打印。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.